Autor Thema: Alle Tage eines Jahren in eine Array  (Gelesen 4176 mal)

Offline kawie

  • Junior Mitglied
  • **
  • Beiträge: 87
  • Ich liebe dieses Forum! Und wie :-)
Alle Tage eines Jahren in eine Array
« am: 02.01.05 - 14:39:02 »
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

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Alle Tage eines Jahren in eine Array
« Antwort #1 am: 02.01.05 - 15:39:00 »
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.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Glombi

  • Gast
Re: Alle Tage eines Jahren in eine Array
« Antwort #2 am: 02.01.05 - 17:39:29 »
Ein weg wäre ein Explode mit Zeitintervall, welches via Evaluate mit Script auf die Reise geschickt wird.

Andreas

audiojosi

  • Gast
Re: Alle Tage eines Jahren in eine Array
« Antwort #3 am: 02.01.05 - 19:17:35 »
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

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Alle Tage eines Jahren in eine Array
« Antwort #4 am: 02.01.05 - 20:37:53 »
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
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

audiojosi

  • Gast
Re: Alle Tage eines Jahren in eine Array
« Antwort #5 am: 02.01.05 - 20:48:25 »
Hallo Jens,

wenn so einfach, warum dann nicht gleich in deiner ersten Antwort ?!

Ich habe meinen Code nicht als den ultimativen Algorithmus angepriesen, habe nur reingepastet, was da so rumgelegen ist...

Nix für ungut.
Jürgen


Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Alle Tage eines Jahren in eine Array
« Antwort #6 am: 02.01.05 - 21:01:56 »
Na, wir wissen ja nun wirklich nicht genau, was hier gewünscht wird, deshalb auch noch keinen Code in meinem ersten Posting. Ich geb nicht gerne Antworten nach Kaffeesatz-Lesen. Oder weisst Du, was Kai denn wirklich braucht?
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

audiojosi

  • Gast
Re: Alle Tage eines Jahren in eine Array
« Antwort #7 am: 02.01.05 - 21:17:22 »
wir wissen ganz genau, was gewünscht ist

Zitat
Ich brauche ein Array in dem alle Tage eines Jahres eingetragen werden.

riecht nach Script, hatte sowas rumliegen. Dauert ca. 30s, das einzustellen und ist nicht wirklich schützenswert.

Wie lange bist du eigentlich dran gesessen, um aus 40 Zeilen ca. 15 zu machen  ???

Verstößt wahrscheinlich gegen die Regeln, solch rumliegende Script-Notizen zu veröffentlichen...  :-[

'tschuldige bitte, ich melde mich ab in diesem/deinem/eurem Forum.

Fragen hatte ich bisher eh nur eine  8), in den anderen paar Beiträgen wollte/konnte ich helfen  :-X

cu
Jürgen

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Alle Tage eines Jahren in eine Array
« Antwort #8 am: 02.01.05 - 21:31:49 »
Jürgen, das ist nun wirklich nicht die richtige Reaktion, aber es ist natürlich Dir überlassen, wie Du damit umgehen willst.

Ehrlich gesagt, ich weiss wirklich nicht genau, was Kai machen will, und die Verwendung dieses Arrays spielt durchaus eine Rolle, ob das der richtige Weg ist oder nicht.

Niemand verbietet Dir, Deinen "rumliegenen Code" zu posten, Du wirst aber auch im ganzen Thread hier nirgends einen entsprechenden Vorwurf meinerseits finden.

Ich hab die Stoppuhr nicht angestellt, mein geposteter Code ist weder eine Abwandlung Deines Codes noch ein herumliegendes Schnippsel, sondern eben gerade mal aus dem Handgelenk geschüttelt und kurz durchgetestet: Eine Handvoll Minuten, aber ich weiss nicht wieviel. Das Konzept dazu war schon in meinem ersten Posting enthalten, wenn Du Dir das nochmals durchliest (stichwort: zählen).

Und zuguterletzt: Das ist defintiv nicht mein Forum.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Glombi

  • Gast
Re: Alle Tage eines Jahren in eine Array
« Antwort #9 am: 02.01.05 - 21:35:14 »
Verstößt wahrscheinlich gegen die Regeln, solch rumliegende Script-Notizen zu veröffentlichen...  :-[
Nein, man darf Scripts posten.

Fragen hatte ich bisher eh nur eine  8), in den anderen paar Beiträgen wollte/konnte ich helfen  :-X
Ansichtssache...
Ich unterstütze Jens ausdrücklich bei seinen Postings heute - nicht nur in diesem Thread! Du weisst was ich meine.

Andreas

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Alle Tage eines Jahren in eine Array
« Antwort #10 am: 02.01.05 - 23:21:20 »
Jürgen: da liegt wohl ein klassisches Mißverständnis vor, was ja im Inet nicht selten vorkommt in Foren etc.

Date/Time-Routinen werden oft unterschätzt aber sind manchmal hochkomplex.
Nicht nur Anfänger haben massive Probleme mit Date/Time.

Daher freut es mich, dass Du eine Lösung gepostest hast, und sich Jens noch eine Vereinfachung dazu ausgedacht hat - obgleich es nur eine Vermutung ist, was denn der Fragesteller tatsächlich sucht.

Jede Lösung ist hier gefragt. Ich habe schon öfter Code gepostet, der eigentlich eher gruselig war (kein Option Declare, etc. etc.), aber ich denke es geht mehr darum, die Methodik anhand Beispiel-Codes zu zeigen, als Copy&Play zu fördern.
Und genau das hast Du gemacht, und Jens hatte sich halt die Zeit genommen, um alternativ eine Methodik zu überlegen.

Ich hatte das schon öfter hier: eine Lösung gepostet, und von jemand anderem kam eine Alternative. Dabei stellte ich fest, dass die Alternative eigentlich sauberer ist, und hatte dann meine Lösung aus DB's verworfen und die Alternative implementiert  :)
Oder ich stellte fest, dass meine Lösung für einen anderen Einsatzzweck ausgelegt war als die Alternative, etc. etc.

Wie auch immer, ich wünsche Dir alles gute,
Matthias
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Alle Tage eines Jahren in eine Array
« Antwort #11 am: 03.01.05 - 00:12:50 »
Herrjeh, was für ein Disaster in einem einzigen Thread ...
- Eine unklare Frage am Anfang
- zwei vielleicht (wahrscheinlich) richtige Lösungsansätze
- zwei irreführende / ungenügende Codes
- und eine beleidigte Leberwurst.

Kai, mal mal ganz fix auf (da Du heute nur kurz die Frage 'reingweworfen hast und Dich dann nicht mehr darum gekümmert hast), was Du wirklich willst.

Vor dem Code von Jürgen FAKAS audiojosi kann ich auf jeden Fall nur warnen: Der liefert lediglich deutschsprachige Strings, und Strings für Datumsangaben sind sowieso (fast) immer tödlich. Ausserdem scheppert das, sowie eine der eingesetzten Clients / Server eben nicht auf deutschsprachige Datumsangaben setzt ... Wenn das dann auch noch gemischt wird - Gute Nacht, Marie !

Wenn es um Variants mit Datumsangaben geht, ist der Weg von Jens (nicht sein Code - der berücksichtigt zwar Schaltjahre, aber das ist dem Array dann nur "mit Mühe" anzusehen) ein sehr gangbarer. Andreas' Weg mit Evaluate ist sehr elegant (das überlässt gleich alle Rechenarbeit Notes), aber ggf. für den Evaluate-Unkundigen nicht ganz einfach aufzuschreiben.

Sollte es doch um Strings gehen: Dann trotzdem Jens' oder Andreas' Weg gehen und die ermittelten werte mit Cstr ad hoc wandeln - dann sollte das (wenn es nicht gespeichert wird) auch über die OS-Einstellungen hinweg passen.

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Alle Tage eines Jahren in eine Array
« Antwort #12 am: 03.01.05 - 07:29:11 »
Völlig richtig, Bennhard, Deine Bemerkungen, deshalb hatte ich ja auch keinen Code gepostet, da der  Zweck der Frage noch im Dunkeln liegt. Mein Code is erstmal nur "Proof of concept" und nicht mehr.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline kawie

  • Junior Mitglied
  • **
  • Beiträge: 87
  • Ich liebe dieses Forum! Und wie :-)
Re: Alle Tage eines Jahren in eine Array
« Antwort #13 am: 04.01.05 - 12:19:13 »
Hallo und Danke!

ich hatte es dringend gebraucht und mir die Lösung dann unter Einsatz von viel Kaffee und Hinrschmalz selbst zusammengebaut :-)

Code

_datFrom := @Text("01.01." + @Text(@TextToNumber(prof_Year) - 1));
_datTill := @Text("31.12." + @Text(@TextToNumber(prof_Year) - 1));


@Explode(@Date(@TextToTime(_datFrom + " - " + _datTill)))


Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: Alle Tage eines Jahren in eine Array
« Antwort #14 am: 04.01.05 - 13:02:40 »
unter Einsatz von [...] Hinrschmalz selbst zusammengebaut

man munkelt, das soll manchmal nicht das Schlechteste sein
« Letzte Änderung: 04.01.05 - 13:47:50 von Thomas Völk »
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Glombi

  • Gast
Re: Alle Tage eines Jahren in eine Array
« Antwort #15 am: 04.01.05 - 13:18:39 »
Hallo und Danke!

ich hatte es dringend gebraucht und mir die Lösung dann unter Einsatz von viel Kaffee und Hinrschmalz selbst zusammengebaut :-)

Code

_datFrom := @Text("01.01." + @Text(@TextToNumber(prof_Year) - 1));
_datTill := @Text("31.12." + @Text(@TextToNumber(prof_Year) - 1));


@Explode(@Date(@TextToTime(_datFrom + " - " + _datTill)))

Das ist aber Formelsprache. Ist es jetzt doch egal, oder was?

Den Tipp mit @Explode hattest Du ja, also war die Hilfe da.

Andreas

deathcheater

  • Gast
Re: Alle Tage eines Jahren in eine Array
« Antwort #16 am: 04.01.05 - 18:22:38 »
scheint Kai jetzt grad egal zu sein, hat nur einige Ressourcen beansprucht. Getreu dem Motto, wer hilft, ist selber schuld !

Ob er's jetzt in Formel oder als Script will, er muss auf jeden Fall lernen, wie man mit Date/Time-Feldern umgeht !

Macht vielleicht nicht immer Spass, ist aber wichtig !

Wenn's echtes Datum sein soll, dann bitte vorher konvertieren und Datum prüfen, wenn nur für Textfeld, dann ists eh egal.

kawie wird sich vielleicht bald wieder melden

deathcheater
« Letzte Änderung: 04.01.05 - 18:30:35 von deathcheater »

Offline kawie

  • Junior Mitglied
  • **
  • Beiträge: 87
  • Ich liebe dieses Forum! Und wie :-)
Re: Alle Tage eines Jahren in eine Array
« Antwort #17 am: 04.01.05 - 19:02:24 »
Hallo nochmal,

merke gerade das ich wohl für etwas unmut gesorgt habe.

Das wollte ich nicht also Sorry.
Es war wirklich dringend und ich hatte wg. dem Stress dann erstmal nicht mehr reingeschat nachdem ich mir eine "provisorische" Lösung gebastelt habe.

Eure Vorschläge betreff Lotus Script werde ich aber eventuell noch mal brauchen um das ganze etwas eleganter abzufangen.

Mit Gruss und Dank

Kai

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Alle Tage eines Jahren in eine Array
« Antwort #18 am: 04.01.05 - 19:34:36 »
Nö, lass' mal, Kai. Dein Thread hat nur zwei Trolle angezogen. Einer hat sich schon selber verabschiedet.

Wegen LS: Du kannst am simpelsten Dein Formelkonstrukt mit Evaluate in LS verwenden.

Bernhard

deathcheater

  • Gast
Re: Alle Tage eines Jahren in eine Array
« Antwort #19 am: 04.01.05 - 19:40:31 »
@Bernhard,

schon etwas abgehoben, Jürgen, *der sich selbst verabschiedet hat* als "Troll" zu bezeichnen..

Grüsse an alle
deathcheater

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz