Autor Beitrag
interessierter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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.
ausblenden C#-Quelltext
1:
2:
if ((ZodiacSignStart <= DateTime.Now) and (DateTime.Now <= ZodiacSignEnd))
  // ...

Für diesen Beitrag haben gedankt: interessierter
interessierter Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: 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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: So 22.04.12 15:38 
Hallo,

wenn du den Code von user profile iconjaenicke 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:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
DateTime birthDate = DateTime.Now;
// 20:05:03 ist nur ein Beispiel, ich kenne die Uhrzeiten der Sternbilder nicht
DateTime startTime = new DateTime(birthDate.Year, 3212053); 
DateTime endTime = new DateTime(birthDate.Year, 4202053);

if (startTime <= birthDate && birthDate < endTime) {
  // widder
}

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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 22.04.12 15:54 
user profile iconinteressierter hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: 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 :D

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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: 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.