Autor Thema: Kalenderwochen berechnen  (Gelesen 1312 mal)

Offline Onkel Domino

  • Aktives Mitglied
  • ***
  • Beiträge: 166
  • Geschlecht: Männlich
  • Tue Gutes - und rede darüber!
Kalenderwochen berechnen
« am: 31.03.06 - 18:03:48 »
Hallo zusammen,

ich möchte die KW für ein bestimmtes Datum berechnen und bin dabei auf folgendes Script gestoßen (tausend Dank an Bernhard!!!):

http://atnotes.de/index.php?topic=20457.msg128232#msg128232

Leider bricht die Function "CalculateWeekNo" in der Zeile

iWeekNo = (vDateGiven - iDateGivenOffset - vFirstMonday) \ 7 + 1

mit der Fehlermeldung "Overflow" ab. Ich übergebe der Function ein >NotesDateTime.DateOnly< und das wird wohl auch als Date erkannt. Sprich: es bricht nicht nach dem "IsDate"-Test in der Funktion ab.

Kann mir jemand sagen, was da schief läuft?
There are only 10 types of people in the world: Those who understand binary and those who don't.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Kalenderwochen berechnen
« Antwort #1 am: 01.04.06 - 13:24:31 »
Du übergibst mit NotesDateTime.DateOnly einen String - gebraucht wird aber ein Variant vom Typ Date/Time. Eigentlich hätte ich diesen Fall auch abprüfen müssen ...

Übergeben musst Du also entweder
NotesDateTime.LSLocalTime
oder
Today (wenn Du das für das heutige Datum brauchst)
oder
NotesDocument.DeinDatumsfeld (0) (wenn das Datum in einem Item steht)

HTH,
Bernhard

Offline Onkel Domino

  • Aktives Mitglied
  • ***
  • Beiträge: 166
  • Geschlecht: Männlich
  • Tue Gutes - und rede darüber!
Re: Kalenderwochen berechnen
« Antwort #2 am: 01.04.06 - 13:44:05 »
Das war's. Nun funktioniert es.

Da habe ich wohl noch etwas Nachholbedarf was den Datentyp Variant betrifft. M.E. war das ein Container, der sämtliche andere Datentypen aufnehmen kann und "irgendwie automatisch" in das dem Kontext entsprechende Format überträgt.

Ich werde diesbezüglch nochmal Raimund Mann zu rate ziehen ;-)
There are only 10 types of people in the world: Those who understand binary and those who don't.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Kalenderwochen berechnen
« Antwort #3 am: 01.04.06 - 13:55:22 »
Ich werde diesbezüglch nochmal Raimund Mann zu rate ziehen ;-)

Seite 26  ;D

Variant kann nahezu jeden Datentyp aufnehmen - aber dabei erfolgt keinerlei Wandlung. Du übergibst einen String - und das bleibt er dann auch mit seinen Eigenschaften.
Ich hätte auf jeden Fall in der Parameterbeschreibung deutlich angeben müssen, was für vGivenDate erwartet wird. Das Isdate verwirrt dann ja eher - das prüft, ob man aus dem übergebenen Wert "irgendwie" ein gültiges Datum lesen kann. Und wenn ein String als Datum interpretierbar (oder mit Cdat wandelbar) ist, dann passiert dieser ja auch brav diese "Prüfung".

Bernhard

Offline Onkel Domino

  • Aktives Mitglied
  • ***
  • Beiträge: 166
  • Geschlecht: Männlich
  • Tue Gutes - und rede darüber!
Re: Kalenderwochen berechnen
« Antwort #4 am: 01.04.06 - 14:50:18 »

Variant kann nahezu jeden Datentyp aufnehmen - aber dabei erfolgt keinerlei Wandlung. Du übergibst einen String - und das bleibt er dann auch mit seinen Eigenschaften.


Genau so sieht's aus...anscheinend hatte ich das falsch im Hinterkopf...!

Nochmals vielen Dank für die Hilfe und den Code. Das hat mir viel Arbeit erspart. Dafür werde ich auf jeden Fall das Scheckbuch zücken  ;)

Markus
There are only 10 types of people in the world: Those who understand binary and those who don't.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz