Seite 1 von 1

Kommenden Freitag errechnen...

Verfasst: 18.09.2013 14:06
von Rene-RNI
Hallo ich brauche für meinen Uploader die kommenden 8 Freitage in einer Combobox.

Wie kann ich das machen? finde dazu keinerlei anhaltspunkte.

Kann mir da jemand unter die arme greifen?

Danke schon mal
Rene

Re: Kommenden Freitag errechnen...

Verfasst: 18.09.2013 14:26
von CSHW89
Die folgenden Funktionen sollten dabei helfen:

Date(): Gibt aktuelles Datum zurück
DayOfWeek(): Gibt den Wochentag eines Datums zurück
AddDate(): Fügt einen Wert zum Datum hinzu (z.B. 7 Tage)

Näheres in der Hilfe.

lg Kevin

Re: Kommenden Freitag errechnen...

Verfasst: 18.09.2013 14:33
von NicTheQuick
Du meinst sowas?

Code: Alles auswählen

Define.i today, nextFriday

today = Date()
nextFriday = AddDate(today, #PB_Date_Day, ((12 - DayOfWeek(today)) % 7))

Debug "Die kommenden 8 Freitage:"
For i = 1 To 8
	Debug FormatDate("%dd.%mm.%yyyy", nextFriday)
	nextFriday = AddDate(nextFriday, #PB_Date_Week, 1)
Next

Re: Kommenden Freitag errechnen...

Verfasst: 18.09.2013 14:39
von Rene-RNI
Ja genau das habe ich gesucht,

so wie ich das verstehe: 12-7= 5.tag der Woche also freitag

Wenn ich % 5 mache = Sonntage

sehe ich das richtig?

Re: Kommenden Freitag errechnen...

Verfasst: 18.09.2013 14:40
von Bisonte
Und ich mach da sowas ellenlanges... :oops:

Da wart ihr schneller...
Aber auch der Weg funktioniert

Code: Alles auswählen

Define Window, Event, Quit
Define Combo

#DAY_TO_SECONDS = 86400

Dim Freitag(8)

Window = OpenWindow(#PB_Any, #PB_Ignore, #PB_Ignore, 200, 100, "Kommende Freitage", #PB_Window_SystemMenu)

Combo = ComboBoxGadget(#PB_Any, 20, 20, 160, 20)

If DayOfWeek(Date()) < 5
  Freitag(1) = Date() + ((5-DayOfWeek(Date())) * #DAY_TO_SECONDS)
ElseIf DayOfWeek(Date()) = 6
  Freitag(1) = Date() + (6*#DAY_TO_SECONDS)
ElseIf DayOfWeek(Date()) = 5
  ; Hier wäre der wirklich nächste Freitag
  Freitag(1) = Date() + (7*#DAY_TO_SECONDS)
  ; oder eben Heute
  ; Freitag(1) = Date()
EndIf

AddGadgetItem(Combo, 0, FormatDate("%dd.%mm", Freitag(1))  )
For i=2 To 8
  Freitag(i) = Freitag(i-1) + (7*#DAY_TO_SECONDS)
  Debug FormatDate("%dd.%mm", Freitag(i))
  AddGadgetItem(Combo, i-1, FormatDate("%dd.%mm", Freitag(i))  )
Next i

SetGadgetState(Combo, 0)

Repeat
  
  Event = WaitWindowEvent()
  
  If Event
    Select Event
      Case #PB_Event_CloseWindow
        Quit = 1
    EndSelect
  EndIf
  
Until Quit > 0

Re: Kommenden Freitag errechnen...

Verfasst: 19.09.2013 13:15
von NicTheQuick
Rene-RNI hat geschrieben:Ja genau das habe ich gesucht,

so wie ich das verstehe: 12-7= 5.tag der Woche also freitag

Wenn ich % 5 mache = Sonntage

sehe ich das richtig?
Das "% 7" muss immer bleiben. Aber du kannst die Zahl '12' variieren von 7 bis 13 um andere nächste Wochenentage zu berechnen.