Autor Beitrag
felix96
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34


VS 2010 Express
BeitragVerfasst: Do 16.09.10 15:57 
Hallo,
sry, wegen schlechten Beschreibungen etc. :-(

Ich möchte z.B. die Differenz zwischen Heute und dem 23.10.2010 Berechnen.
Anschließend soll eine MessageBox gezeigt Werden wo z.B. "1 Monat und 7 tage" drinsteht.
Und wenn die Monate = 0 dann nur "7 Tage".

Bei verständnissfragen bitte meckern:-)


mfg Felix
felix96 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34


VS 2010 Express
BeitragVerfasst: Do 16.09.10 16:00 
user profile iconfelix96 hat folgendes geschrieben Zum zitierten Posting springen:
Hallo,
sry, wegen schlechten Beschreibungen etc. :-(

Ich möchte z.B. die Differenz zwischen Heute und dem 23.10.2010 Berechnen.
Anschließend soll eine MessageBox gezeigt Werden wo z.B. "1 Monat und 7 tage" drinsteht.
^^MessageBox.Show(s2+" Monate"+s1+" Tage");
Und wenn die Monate = 0 dann nur "7 Tage".

Bei verständnissfragen bitte meckern:-)


mfg Felix
felix96 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34


VS 2010 Express
BeitragVerfasst: Do 16.09.10 16:00 
ausblenden C#-Quelltext
1:
MessageBox.Show(s2+" Monate"+s1+" Tage");					



Sorry, hab den Beitrag nicht geändert, sondern mich Zitiert
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 16.09.10 16:22 
Hallo,

zuerst solltest du die Daten in DateTime objekte konvertieren. Schau dir dazu bei MSDN die Methoden DateTime.Parse und DateTeim.ParseExact an.

Wenn du zwei DateTime-Objekte hast kannst du diese voneinander subtrahieren und so die Differenz bekommen.

Zum Beispiel:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
            DateTime christmas = new DateTime(20101224);

            TimeSpan timeToChristmas = christmas.Subtract(DateTime.Today);

            System.Windows.Forms.MessageBox.Show("Noch " + timeToChristmas.TotalDays + " Tage bis Weihnachten");


Die Anzahl Monate spuckt er leider nicht mehr raus.

Vlt. findest du ja noch etwas wenn du mit dem DateTime objekt suchst.

Gruß
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: Do 16.09.10 17:38 
Für die Berechnung der Monate brauchen wir eine kleine Definition wie die zu bestimmen sein soll. Denn das ist nicht eindeutig.

klärende(hoffentlich) Beispiele (Beginn und Ende des Zeitraums nehme ich jetzt mal als inklusiv an)

01.03. bis 31.03. soll da ein Monat oder 31 Tage raus kommen?
28.02. bis 28.03. soll da ein Monat oder 29 Tage raus kommen? (kein Schaltjahr)
31.03. bis 30.04. soll da ein Monat und 1 Tag oder 31 Tage raus kommen?

PS. Gibt es eigentlich zum Problem der Zeitspannenberechnung eine ISO oder DIN Norm ? Und wenn ja natürliche welche? ;)