Domino 9 und frühere Versionen > Entwicklung

Alle Tage eines Jahren in eine Array

(1/5) > >>

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