Ich versuche, ein Datum von heute zu formatieren, um einige Sekunden, Stunden, vielleicht Tage, ähnlich wie Clash of Clans Timer Wie diese Arbeit:C# Datumsformat über 1 Tag
System.DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
dateTime = dateTime.AddSeconds(80000);
return dateTime.ToString("H'h' mm'min'");
Es funktioniert tatsächlich groß Ich bekomme '22h 13min', nur für Minuten und Stunden. Wenn ich versuche, Tage damit zu drucken, wie folgt:
System.DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
dateTime = dateTime.AddSeconds(80000);
return dateTime.ToString("d'd' H'h' mm'min'");
Ich habe '1d 22h 13min' zurückgegeben. Wenn ich zum Beispiel versuche, 1 Tag in Sekunde (86400 Sekunden) zu konvertieren, gibt dieser Code 2 Tage statt 1 Tag zurück.
Wie kann ich dieses Problem richtig lösen ohne Tricks wie harte Subtraktion um 1 am Tag zurückgegeben?
EDIT1: Zum Beispiel erwartetes Ergebnis für einen Tag ist:
System.DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
dateTime = dateTime.AddSeconds(86400);
return dateTime.ToString("d'j' H'h' mm'min'");
Rückkehr 2d 0h 00min, statt 1d 0h 00min.
ich Ihre Frage nicht verstehen. Können Sie bitte genauer sein? Wenn Sie '86400' hinzufügen, wird' 2d 0h 00min' wie erwartet zurückgegeben. –
Ich kann Ihr Szenario und Ihr erwartetes Ergebnis nicht verstehen. Können Sie den Code mit "versuchen, 1 Tag in Sekunde (86400sec) zu konvertieren, wird dieser Code 2 Tage statt 1 Tag zurückgeben."? –
Für 'DateTime' ist Tag der Tag des Monats. Was Sie wollen, ist eine 'TimeSpan'. – juharr