Laden...

DateTimePicker und Textbox

Erstellt von mpeter vor 8 Jahren Letzter Beitrag vor 8 Jahren 2.382 Views
M
mpeter Themenstarter:in
27 Beiträge seit 2015
vor 8 Jahren
DateTimePicker und Textbox

Hallo an alle,

ich habe da ein Problem wo ich auf dem Schlauch stehe.

ich habe einen DateTimePicker und eine Textbox, nun möchte ich über das Event
Value.Change des mir ausgehend vom aktuellen Datum(Jahr) das alter in Jahre in der Textbox ausgegeben wird ich stehe da irgentwie voll au dem Schlauch.

Ich habe das Forum nun auch schon stundenlang durchsucht.

Besen Dank für eure Hilfe.

Michael

1.040 Beiträge seit 2007
vor 8 Jahren

Woran scheitert es denn genau?

M
mpeter Themenstarter:in
27 Beiträge seit 2015
vor 8 Jahren

das ich einfach keinen richtigen Ansatz finde diese Problematik zu lösen, ich muß dazu sagen das ich noch relativ neu bin in chsarp

1.696 Beiträge seit 2006
vor 8 Jahren

Du meinst, der User klickt auf dem DateTimePicker und setzt z.B. sein Geburtsdatum dann möchtest du sein Alter ausrechnen und in der Textbox ausgeben? Wenn ja, wie und was hast du bis jetzt versucht?

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

M
mpeter Themenstarter:in
27 Beiträge seit 2015
vor 8 Jahren

Genau das meine ich bis jetzt hatte ich das so versucht

int nDif = 0;

vGeburtstag = Convert.ToDateTime(vGeburtstag);
nDif = DateAndTime.DateDiff("yyyy", vGeburtstag, DateAndTime.Now());
if (DateAndTime.Month(vGeburtstag) > DateAndTime.Month(DateAndTime.Now)) {
	nDif = nDif - 1;
} else if (DateAndTime.Month(vGeburtstag) == DateAndTime.Month(DateAndTime.Now)) {
	if (DateAndTime.Day(vGeburtstag) > DateAndTime.Day(DateAndTime.Now))
		nDif = nDif - 1;
}

Alter = nDif;

und als Ausgabe:

System.DateTime Geburtsdatum = default(System.DateTime);
Geburtsdatum = DateTimePicker1.Text;
TextBox2.Text = Alter(DateTimePicker1.Text);

Das habe ich noch von meinen alten VB Zeiten im Hinterkopf gehabt und versucht nach Csharp umzubauen

Hinweis von MrSparkle vor 8 Jahren

Bitte in Zukunft Code-Tags verwenden.

1.696 Beiträge seit 2006
vor 8 Jahren

Genau das meine ich bis jetzt hatte ich das so versucht

Das ist viel zu kompliziert, schau:

textBox1.Text = (DateTime.Now.Year - dateTimePicker1.Value.Year).ToString();

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

M
mpeter Themenstarter:in
27 Beiträge seit 2015
vor 8 Jahren

Vielen Dank das war genau as richtige

Ihr seid die Besten

Michael

1.040 Beiträge seit 2007
vor 8 Jahren

Das funktioniert nicht ganz.
Im Codeschnipsel von vbprogger wird nicht berücksichtigt, dass der Geburtstag im aktuellen Jahr noch vor uns liegen kann (Geburtstag 15.11.2000, Aktuell 17.08.2015, Alter 14, Schnipsel sagt 15).

1.696 Beiträge seit 2006
vor 8 Jahren

Ich zeige nur die Richtung, den Rest muss man schon selbst machen 😉

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

1.040 Beiträge seit 2007
vor 8 Jahren

Und ich habe ihn nur noch mal explizit darauf aufmerksam gemacht, dass er selbst noch etwas nachdenken muss. 😉

M
mpeter Themenstarter:in
27 Beiträge seit 2015
vor 8 Jahren

da arbeite ich gerade dran aber ich bin dankbar das ich einen Ansatz habe an dem ich weiterarbeiten kann ich hoffe as ich das weitere durch testen selber hinbekomme.
Wie heißt es so schön Learning by doing.

5.658 Beiträge seit 2006
vor 8 Jahren

Hi mpeter,

Wie heißt es so schön Learning by doing.

Stimmt, aber man muß sich das Leben auch nicht unnötig schwer machen. In der Doku (z.B. unter DateTime Structure oder TimeSpan Structure) findest du nämlich eine Auflistung der zur Verfügung stehenden Eigenschaften und Methoden sowie einige Beispiele, an denen du dich orientieren kannst.

Christian

Weeks of programming can save you hours of planning