Domino 9 und frühere Versionen > Entwicklung
Alle Tage eines Jahren in eine Array
kawie:
Hallo und Frohes neues :-)
Ich brauche ein Array in dem alle Tage eines Jahres eingetragen werden.
Wie bekomme ich so etwas in LS hin?
Das aktuelle Jahr kann ich mir rausziehen aber alle Tage?
Hoffe auf Hilfe.
Kai
Semeaphoros:
In welcher Form möchtest Du denn die Tage haben? Tage anzugeben in LS ist eigentlich einfach, da die interne Codierung des Datums auf dem ganzzahligen Teil des sogenannten Datumswertes - einer Double-Zahl - beruht, kann man vom 1.1. an einfach aufwärts zählen. Die Designer-Hilfe gibt da an, wie das funktioniert.
Glombi:
Ein weg wäre ein Explode mit Zeitintervall, welches via Evaluate mit Script auf die Reise geschickt wird.
Andreas
audiojosi:
Hallo Kai,
habe sowas ähnliches mal hinter einem Button gebraucht.
Dim daysOfYear ( 1 To 366) As String
Dim days As Integer
Dim months As Integer
Dim febDays As Integer
Dim CurrentYear As Integer
Dim current As Integer
Dim i As Integer
CurrentYear = Year(Date)
current = 0
'Schaltjahr berechnen
'Im Gregorianischen Kalender (ab dem 15. Oktober 1582) ist die Definition folgendermaßen:
'Alle 4 Jahre ein Schaltjahr, alle vollen 100 Jahre nicht, volle 400 Jahre jedoch wieder.
Select Case CurrentYear
Case 2004, 2008, 2012, 2016 '...
febDays = 29
Case Else
febDays = 28
End Select
'Monate durchnudeln
For months = 1 To 12
Select Case Months
Case 1,3,5,7,8,10,12 '31 Tage
For i = 1 To 31
current = current + 1
daysOfYear(current) = Format(i,"00") & "." & Format(months,"00") & "." & CurrentYear
Next
Case 2 '28 bzw. 29 Tage
For i = 1 To febDays
current = current + 1
daysOfYear(current) = Format(i,"00") & "." & Format(months,"00") & "." & CurrentYear
Next
Case 4,6,9,11 '30 Tage
For i = 1 To 30
current = current + 1
daysOfYear(current) = Format(i,"00") & "." & format(months,"00") & "." & CurrentYear
Next
End Select
Next
Die Berechnung des Schaltjahrs kannst du im Bedarfsfall noch etwas ausbauen, für meinen Anwendungsfall warens absehbar nur wenige Jahre, deshalb hab ich mir da nur wenig Mühe gegeben. ist vielleicht auch sonst noch performanter zu machen, für meinen Zweck hats allemal gereicht. Vielleicht hilft dir das schon mal weiter.
Viele Grüße
Jürgen
Semeaphoros:
Warum so kompliziert?
Dim Days (365) As Variant
Dim counter As Integer
Dim FirstOfJan As Variant
FirstOfJan = Datenumber (Year(Now),1,1)
For counter = 0 To 364
Days (Counter) = FirstOfJan + Counter
Print Format (Days(Counter),"General Date")
Next
If Day(Days (364)) = 30 Then
' Schaltjahr
Days (365) = FirstOfJan + 365
Print Format (Days(365),"General Date")
End If
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln