Autor |
Beitrag |
interessierter
      
Beiträge: 75
|
Verfasst: Fr 20.04.12 23:41
Hallo Zusammen
habe im Internet nach der Antwort gesucht, aber leider nicht gefunden. Es geht um Datumsvergleich.
Mein jetziger Code liest den String Datum ein und konvertiert ihn zu einem Datum.
Nun will ich die Einagbe mit mehreren Zeitspannen vergleichen. z.B.
Wenn Eingabe Datum zwischen dem 1.4 und dem 28.4 liegt, dann Console.WriteLine...
usw
Ziel ist es das richtige Sternzeichen zu erkennen und auszugeben via WriteLine
WIe kann ich Zeitspannen definieren und mit dem Datum der Eingabe vergleichen?
Grüsse
interessierter
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 21.04.12 06:02
Das kannst du eigentlich direkt abfragen. Du musst nur aus deinen Sternzeichendaten auch DateTime-Werte machen und dabei beim Steinbock auf den Jahreswechsel achten. C#-Quelltext 1: 2:
| if ((ZodiacSignStart <= DateTime.Now) and (DateTime.Now <= ZodiacSignEnd)) |
Für diesen Beitrag haben gedankt: interessierter
|
|
interessierter 
      
Beiträge: 75
|
Verfasst: So 22.04.12 15:04
supi, hat geklappt, danke
komme richtig gut voran in letzter Zeit.
Jedoch habe ich nun das Problem bei den Sternzeichen die sich im Geburtstag überschneiden.
z.B. 22.9. - 23.10. Waage und vom 23.10.- 22.11 Skorpion. 23.10. überschneidet sich.
Ich denke mal, ich sollte bei der Abfrage noch nach der Geburtszeit fragen, und meinen ifs mit Datum noch Uhrzeiten einfügen.
Hier ein BeispielCode:
C#-Quelltext 1: 2: 3: 4:
| if (x.Month == 3 & x.Day >= 21 || x.Month == 4 & x.Day <= 20) { Console.WriteLine"Du bis Widder"); } |
Kann ich da theoretisch noch Stunden und Minuten einbauen?
Grüsse interessierter
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: So 22.04.12 15:38
Hallo,
wenn du den Code von jaenicke verwendest, wird auch die Uhrzeit in den Vergleich eingeschlossen (der Typ heißt ja DateTime). In deinem Code vergleichst du jedoch Monat und Tag separat, das ist nicht zu empfehlen. Mein Vorschlag:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| DateTime birthDate = DateTime.Now; DateTime startTime = new DateTime(birthDate.Year, 3, 21, 20, 5, 3); DateTime endTime = new DateTime(birthDate.Year, 4, 20, 20, 5, 3);
if (startTime <= birthDate && birthDate < endTime) { } |
Am besten legst du die Start- und Endzeiten in einer Liste ab, und gehst dann in einer Schleife alle Einträge durch. Beachte, dass der Steinbock zweimal vorkommen muss, einmal für das Jahresende, und einmal für den Jahresbeginn.
Grüße,
Yogu
Für diesen Beitrag haben gedankt: interessierter
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 22.04.12 15:54
interessierter hat folgendes geschrieben : | Jedoch habe ich nun das Problem bei den Sternzeichen die sich im Geburtstag überschneiden.
z.B. 22.9. - 23.10. Waage und vom 23.10.- 22.11 Skorpion. 23.10. überschneidet sich. |
Eigentlich überschneiden sich keine. Ich weiß nicht wo du die Daten her hast, aber meines Wissens nach fängt Skorpion erst am 24.10. an.
|
|
interessierter 
      
Beiträge: 75
|
Verfasst: So 22.04.12 16:10
Ich benutzte folgende Liste
www.cortesi.ch/Glossar/gl_sternzeichen.htm
und die ist wirklich falsch. Andere Listen überschneiden sich nicht im Datum.
Ach Gott, wieso musste ich von den x Listen ausgerechnet diese nehmen
Nun kann ich mein Projekt ja trotzdem auf den Vergleich von Monat und Tag belassen. Würde ich die Geburtszeit noch einfügen, müsste ich ja von z.B. Jahrgang 1930 alle Daten und Zeiten in meinen Code integrieren damit jeder eine Abfrage machen könnte. Durch die Stundenverschiebungen könnten ja sonst fehlerhafte Ausgaben gemacht werden.
Aber hab trotzdem gelernt wie man start und endzeit benutzen kann. Coole Sache, danke Leute.
Grüsss
interessierter
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: So 22.04.12 16:29
Eher ungenau als falsch. Wobei es darauf an kommt wie genau du es willst. Die Sternzeichen überschneiden sich nicht aber wann genau sie wechseln(Datum und Uhrzeit) ist eben jedes Jahr ein wenig anders. Wobei ich keine Ahnung habe wie das berechnet wird, wenn es denn berechnet wird und nicht irgendwie ausgewürfelt. Immerhin reden wir von Astrologie und nicht von einer Wissenschaft.
|
|
interessierter 
      
Beiträge: 75
|
Verfasst: So 22.04.12 16:43
Ich muss jetzt leider noch ein paar Tage warten bis ich einen neuen Work Shop kriege
Hat irgendjemand ne Aufgabe für mich die mittels sitch case lösen soll?
Mir fällt da irgendwie grad nichts ein. Will switch case noch unter die Lupe nehmen.
|
|