Nächster Geburstag aussrechnen

Fridulin

Erfahrenes Mitglied
Hallo Leute,

ich bräuchte einmal eure Hilfe. Ich habe bzw. möchte gerne ein Geburstagserrinerungs Programm schreiben, welches anzeigt wann der nächste Geburstag ansteht und wie lange es bis dahin noch dauert. Es soll die Schaltjahre mit einbeziehen.
Also ich habe mehrere Daten, welche ich nach Gebrustags Tag.Monat.Jahr aufgelöst habe, sowie natürlich das aktuelle Datum.
Ich weiß nun leider nicht wie ich das am Besten errechnen lassen kann.

Über jede Hilfe wäre ich sehr Dankbar.

Viele Grüße und vielen Dank schon einmal im vorraus.
Fridulin

PS: Ich Programmiere mit C#


Edit: Gibt es vielleicht eine Möglichkeit ein Geburstag in Tagen auszurechnen?
 
Zuletzt bearbeitet:

Fridulin

Erfahrenes Mitglied
Hallo,

vielen Dank für deine Hilfe. Ich habe auch schon das Richtige gefunden, nur leider weiß ich nicht wie man einen string convertiert zu DateTime.
Ich habe jetzt folgendes:
Code:
string geb_aus = aktuell.Subtract(arrZeilen[i].Substring(0,6));
MessageBox.Show(geb_aus);

Viele Grüße und vielen Dank noch einmal
Fridulin
 

Fridulin

Erfahrenes Mitglied
Hallo,

ich wollte nur mitteilen das ich jetzt alleine darauf gekommen bin.
Ich habe es wie folg gelöst:
Code:
TimeSpan geb_datum_rechnen;
DateTime geb_datum = new DateTime(jahr_a, monat_geb, tag_geb); 
DateTime datum_aktuell = new DateTime(jahr_a, moat_a, tag_a); 
geb_datum_rechnen = geb_datum.Subtract(datum_aktuell);
MessageBox.Show(geb_datum_rechnen.ToString());
Ich muß nur noch die Ausgabe ein bischen editieren, beim TimeSpan funktioniert ("dd") ja leider nicht. Aber das bekomme ich schon hin.

Viele Grüße und vielen Dank nocheinmal für den Tipp.
Fridulin
 

Christian Kusmanow

Erfahrenes Mitglied
Hallo Fridulin!

Fridulin hat gesagt.:
Ich muß nur noch die Ausgabe ein bischen editieren, beim TimeSpan funktioniert ("dd") ja leider nicht. Aber das bekomme ich schon hin.
Der TimeSpan unterstützt das auch nicht.
Guck mal hier hinein:
Strings formatieren mit C# (Kurzreferenz)
String Formatting in C#
C#:
DateTime geb_datum = new DateTime( 1981, 06, 16 ); 
DateTime datum_aktuell = new DateTime( DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day );
TimeSpan alter_zeitspanne = datum_aktuell.Subtract( geb_datum );
DateTime alter_gesamt = new DateTime( alter_zeitspanne.Ticks );

MessageBox.Show(
	string.Format(
	"Tage: {1:#0,000}{0}Stunden: {2:#0,000}{0}Minuten: {3:#0,000}{0}Sekunden: {4:#0,000}{0}Genaues Alter:{5}",
	Environment.NewLine,
	alter_zeitspanne.TotalDays,
	alter_zeitspanne.TotalHours,
	alter_zeitspanne.TotalMinutes,
	alter_zeitspanne.TotalSeconds,
	alter_gesamt.Year -1 ) );
MfG,
cosmo
 

Fridulin

Erfahrenes Mitglied
Hallo Cosmo,

danke für deine Antwort. Das kann ich sehr gut gebrauchen, ich hatte es vorher einfach mit split gesplittet. Er hat mit meinen Programm Text nur die Tage ausgerechnet, war auch ok, aber deine Lösung ist natürlich besser. So kann ich auch noch die Monate bis dahin Anzeigen.
Code:
char[] Split = {'.'};
string [] geb_zeit = geb_datum_rechnen.ToString().Split(Split);
tage_zum_geb = Convert.ToInt32(geb_zeit[0]);

Viele Grüße und halte die Ohren Steif
Fridulin