Entwickler-Ecke
Basistechnologien - Differenz zwischen 2. Daten
felix96 - Mo 13.09.10 20:46
Titel: Differenz zwischen 2. Daten
Hallo, hab schon gesurft, auch mit der Forums suche.
Aber was ist hier dran falsch?
C#-Quelltext
1:
| myTime = Convert.ToDateTime("23.7.2010"); |
Danke schonmal für Antworten
Delete - Mo 13.09.10 20:49
felix96 hat folgendes geschrieben : |
C#-Quelltext 1:
| myTime = Convert.ToDateTime("23.7.2010"); | |
Keine Ahnung. Was erwartest du? Was kommt bei raus? Was gibt es für eine Fehlermeldung? Und was hat der Code mit dem Beitragstitel zu tun?
Ralf Jansen - Mo 13.09.10 20:52
| Zitat: |
| Aber was ist hier dran falsch? |
Das die Frage nicht zum Code passt? Wenn da was falsch ist solltest du uns sagen was da raus kommt und was du stattdessen erwartet hättest.
felix96 - Mo 13.09.10 20:53
Gelöst, ich muss ein Englisches Datum angeben: myTime = Convert.ToDateTime("7.23.2010");
Wie kann ich ein Deutsches Datum in ein Englisches umrechnen lassen?
Edit:
Okay, sry der Titel war schlecht gewählt.
Ralf Jansen - Mo 13.09.10 21:02
Englisches Datum und deutsches Datum sind identisch. Die Darstellung als string mag unterschiedlich sein.
Du musst bei der Typumwandlung von string nach Datetime bzw. umgekehrt der gewählten Konvertierungsmethode (Convert.ToDateTime, Convert.ToString, DateTime.Parse usw.)
einen Formatprovider mitgeben der definiert wie das Datum als string zu interpretieren ist. Details dazu gibt es z.B. in der Hilfe zu
Datetime.Parse [
http://msdn.microsoft.com/de-de/library/kc8s65zs.aspx].
felix96 - Mi 15.09.10 18:45
Ok, danke es klappt :P
Aber wie kann ich jetzt es so hinkriegen, das in String1 Tage und in String2 Monate stehen?
P.S. Meine Lösung ist z.Z. so:
C#-Quelltext
1: 2:
| myTime = DateTime.ParseExact("23.07.2010", "dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture); mySpan = DateTime.Now - myTime; |
Da kommt aber irgendwas kryptisches raus, wie kann ich es also in diese strings^^ schreiben?
Ralf Jansen - Mi 15.09.10 22:37
Dein Fragen ist mal wieder ein Rätsel? Dein Code lässt vermuten das du Tage und Monate als Differenz von zwei Zeitpunkten willst. Dein Frage leider nicht. Was willst du denn jetzt?
Willst du ein Datum in seine Einzelteile zerlegen -> Tag 23, Monat 7, Jahr 2010
oder die Differenz zweier DateTimes?
Und wenn es dir um die Differenz geht dann in absoluten Monaten und Tagen -> 3,512 Monate oder 105,6 Tage oder 2534,4 Stunden
oder geht es dir um die jeweiligen ganzen Anteile der Differenz -> 3 Monate 15 Tage 14 Stunden
Yogu - Mi 15.09.10 23:40
Schau dir einfach mal die Eigenschaften von TimeSpan, dem Ergebnis deiner Subtraktion an. Dort findest du z.B. die Days, die die Anzahl der Tage in der Differenzzeitspanne angibt. Teile durch 30, und du erhältst ungefähr die Anzahl der Monate.
Wenn du wirklich die Differenz der Monatsnummern und die der Tage im Monat berechnen willst, greife direkt auf Month und Day deiner DateTimes zu und berechne deren Differenz.
Ist dir klar, dass man die Zeitspanne zwischen zwei beliebigen Zeitpunkten nicht in Monaten angeben kann? Ein Monat kann ja zwischen 28 und 31 Tage haben...
Bitte starte beim nächsten Thema ein neues Topic. Du hast zwar auch mit Datumsfragen angefangen, die haben aber nicht viel mit der aktuellen zu tun.
Ralf Jansen - Do 16.09.10 16:09
| Zitat: |
| Ist dir klar, dass man die Zeitspanne zwischen zwei beliebigen Zeitpunkten nicht in Monaten angeben kann? Ein Monat kann ja zwischen 28 und 31 Tage haben... |
Doch geht natürlich nur eben nicht über den trivialen Weg einer simplen Subtraktion.
Beispiel
13.3.2010 bis 26.6.2010
2 komplette Monate (April, Mai)
+ 19/31 anteiliger März
+ 26/30 anteiliger Juni
----------------------------------------
~ 3,4796 Monate
Yogu - Do 16.09.10 18:32
Ralf Jansen hat folgendes geschrieben : |
| Zitat: | | Ist dir klar, dass man die Zeitspanne zwischen zwei beliebigen Zeitpunkten nicht in Monaten angeben kann? Ein Monat kann ja zwischen 28 und 31 Tage haben... |
Doch geht natürlich nur eben nicht über den trivialen Weg einer simplen Subtraktion. |
Ok, ich hab mich ungenau ausgedrückt. Es ist nicht möglich, eine Zeitspanne in Monaten anzugeben
und dieses Ergebnis wieder zurück in eine Zeitspanne umzuwandeln.
Ralf Jansen hat folgendes geschrieben : |
Beispiel
13.3.2010 bis 26.6.2010
2 komplette Monate (April, Mai)
+ 19/31 anteiliger März
+ 26/30 anteiliger Juni
----------------------------------------
~ 3,4796 Monate |
Dabei sind Juni-Tage mehr Wert als März-Tage. Ob das sinnvoll ist, hängt ganz von der Anwendung ab.
Ralf Jansen - Do 16.09.10 18:41
| Zitat: |
| Dabei sind Juni-Tage mehr Wert als März-Tage |
Jeder Sonnenanbeter wird dem zustimmen ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!