Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: yes2002 am 07.10.03 - 11:24:48

Titel: Erster Werkag des Monats ermitteln?
Beitrag von: yes2002 am 07.10.03 - 11:24:48
Hi,

habe im Forum gesucht - aber nix passendes gefunden. Deshalb, wie kann ich den ersten Werktag eines Montas in Lotus Script ermitteln?

Beispiel:
01.11.2003 = Samstag -> weekday = 7 -> keine Aktion
02.11.2003 = Sonntag -> weekday = 1 -> kein Aktion
03.11.2003 = Montag -> weekday = 2 -> Aktion wird durchgeführt
04.11.2003 = Dienst -> weekday = 3, aber nicht erster Werktag des Monats, deswegen keine Aktion.

Hat jemand eine pfiffige Idee?

PS: Feiertage werden ignoriert.

Danke!

Titel: Re:Erster Werkag des Monats ermitteln?
Beitrag von: animate am 07.10.03 - 11:41:28
du hast doch selbst schon die Lösung gepostet.
du nimmst das Datum des ersten Tages eines Monats und zählst solange einen Tag dazu, bis es ein Werktag ist.

vielleicht gehts pfiffiger, aber nicht pragmatischer
Titel: Re:Erster Werkag des Monats ermitteln?
Beitrag von: yes2002 am 07.10.03 - 11:47:54
... hmm, ja - aber ich wollte vermeiden das Datum zu zerlegen.

Komme ich wohl nicht herum?
Titel: Re:Erster Werkag des Monats ermitteln?
Beitrag von: Driri am 07.10.03 - 12:00:21
Hi,

Du könntest doch mit einem Datum starten und dann Adjust immer einen Tag weiterzählen, bis Du den ersten Wochentag des Monats gefunden hast.
Titel: Re:Erster Werkag des Monats ermitteln?
Beitrag von: koehlerbv am 07.10.03 - 12:19:01
Ich glaube, das geht doch eleganter ?

Weekday (Monatserster) = x
x = 1 -> Diff = 0
      sonst Diff = 8 - x
Diff muß jetzt zum Tag hinzugezählt werden, um den ersten Werktag zu finden.
1. Januar, 1. Mai = Montag usw. sind so aber nicht abzufangen.

Bernhard
Titel: Re:Erster Werkag des Monats ermitteln?
Beitrag von: Glombi am 07.10.03 - 13:55:04
Hi Bernhard,
Deine Formal versteh ich nicht richtig  ???
Es ist doch
@Weekday(Sonntag) = 1
@Weekday(Samstag) = 6

also muesste es doch so sein:
_Diff :=
@If(
 @Weekday(Monatserster) = 1;1;
 @Weekday(Monatserster) = 1;2;
  0
)

_ErsterWerktag := @Adjust(Monatserster;0;0;_Diff;0;0;0)

Andreas
Titel: Re:Erster Werkag des Monats ermitteln?
Beitrag von: koehlerbv am 07.10.03 - 14:28:29
Oh Mann, was hab' ich da für einen Schmarrn geschrieben... Wenn Montag = 1 WÄRE (sondern der Sonntag, was schon mal der erste Schwachfug von mir war), dann berechnet mein Blödsinn den ersten MONTAG im Monat.
Wollte aber gar keiner wissen - selbst ich nicht.

Völlig ohne Häme: Andreas' Formel muß noch an einer Stelle geändert werden.
_Diff :=
@If(
@Weekday(Monatserster) = 1;1;
@Weekday(Monatserster) = 2;2;
  0
)

_ErsterWerktag := @Adjust(Monatserster;0;0;_Diff;0;0;0)

Ich geh' jetzt in die Ecke und schäme mich ;-(

Bernhard

Titel: Das nehme ich wohl ...
Beitrag von: yes2002 am 08.10.03 - 09:32:15
Hallo,

Danke für die Tipps - ich werde wohl diese Variante verwenden:

If Day(Today) < 4 Then
      'Überprüfung läuft nur, zwischen 1. und 3. eines Monats
      If Day(Today) = 1 Then
         If Weekday(Today) > 1 And Weekday(Today) < 7 Then
            'Prüfen, ob der 1. ein Wochentag ist
            'Aktion
         End If
      Else
         If Weekday(Today) = 2 Then
            'Prüfen, ob der 2. oder 3. ein Montag ist
            'Aktion
         End If   
      End If
   End If

Grüße
Titel: Re:Erster Werkag des Monats ermitteln?
Beitrag von: Glombi am 08.10.03 - 09:53:49
Hi Bernhard,
danke für die Korrektur - mal wieder Copy-Paste.
Dadurch werden wohl 90% aller Fehler in Programmen erzeugt.

Andreas