Timestamp-string-Länge
Wenn ich das Tat
//Default implementation of UNIX time of the current UTC time
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
string myResult = "";
myResult = Convert.ToInt64(ts.TotalSeconds).ToString();
Was ist die maximale Länge der Zeichenfolge von myResult und ist es immer die gleiche Größe?
Warum müssen Sie das wissen?
Nur weil Neo muss wissen, wie weit die Kaninchen-Loch geht zu entscheiden, wenn zu nehmen eine rote Pille oder Blaue Pille.
Nur weil Neo muss wissen, wie weit die Kaninchen-Loch geht zu entscheiden, wenn zu nehmen eine rote Pille oder Blaue Pille.
InformationsquelleAutor 001 | 2010-12-11
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Int64 ist ein signed 64-bit integer, was bedeutet, es hat einen Bereich von Werten aus
−9,223,372,036,854,775,808
zu9,223,372,036,854,775,807
.Seit
toString
nicht format, dessen Ausgabe durch Komma voneinander getrennt, die längsten möglichen Wert der string wäre−9223372036854775808
20 Zeichen lang sein.Nun, da dies repräsentiert ein UNIX-timestamp, die wir brauchen, um zu berücksichtigen, was als eine "angemessene" Datum, um zurückzukehren. Während ich dies Schreibe, einen aktuellen UNIX-timestamp wäre etwas in der Nähe von
1292051460
, die eine 10-stellige Nummer.Unter der Annahme einer maximalen Länge von 10 Zeichen gibt Ihnen eine Reihe von Zeitstempeln aus
-99999999
zu9999999999
. Dies gibt Ihnen einen Datumsbereich aus "Mon, 31 Oct 1966 14:13:21 GMT" , "Sat, 20 Nov 2286 17:46:39 GMT". Beachten Sie, dass ich bin, einschließlich der negation symbol als ein Zeichen in die untere Grenze, die ist, warum die untere Schranke ist also viel näher an der Epoche als die Obere Grenze.Wenn Sie nicht erwarten Termine vor Halloween 1966 oder nach Ende November 2286, können Sie davon ausgehen, dass die Länge der Zeichenfolge wird nicht mehr als 10 Zeichen. Wenn Sie erwarten, dass Daten außerhalb dieses Bereichs (wahrscheinlich pre-1966 eher als post-2286), können Sie erwarten, um zu sehen, ein 11 Zeichen string. Ich würde nicht mehr erwarten als das.
Dass die maximale Anzahl der Zeichen zu erwarten; es könnte kürzer sein.
InformationsquelleAutor AgentConundrum
Vorausgesetzt, der code wird verwendet, weit in die Zukunft, es wäre die maximale Länge eines Int64.
Zum Beispiel, jetzt, Wert ist 1292022273 also die Länge wäre 10.
Finden Sie einen Rechner, der enthält die Sekunden hier http://www.timeanddate.com/date/duration.html
Nein, ich denke, irgendwann im 24. Jahrhundert es geht über 9999999999 Sekunden und zu 11 lange. Also ich denke, es hängt davon ab, was meinen Sie mit "immer". Ihr code wahrscheinlich nicht herum.
24th century werde ich tot sein, und sicher genug, jemand würde das problem gelöst, die vor dieser Zeit!
Ich mag einfache Antworten
InformationsquelleAutor Beth Whitezel
Wenn du dich mit
Convert.ToInt64()
ohne Formatierung, dann Ihre maximale Länge 20, weil die minimaleInt64
ist-9223372036854775808
(das Minuszeichen benötigt ein extra-Zeichen). In der Praxis wird es jedoch nicht nutzen das gesamte Sortiment gewährtInt64
aufgrund von Einschränkungen inTimeSpan
undDateTime
.Und, Nein, die Länge der
myResult
wird nicht immer der gleiche sein, sondern kann im Bereich von 1 bis 20. Es kommt nur auf den aktuellen Wert vonConvert.ToInt64(ts.TotalSeconds)
.Sie sind korrekt; ich habe aktualisiert die Antwort auf Konto für negative Werte, da Int64s sind unterzeichnet 😉
aaargh... und es ist zu spät mein edit-Kommentar. Ich bin dazu verdammt, Sie zu sehen aus wie ein idiot für alle Ewigkeit! DOOOOMED!
InformationsquelleAutor Phil Hunt
Erhalten max Größe der Zeitspanne versuchen, verwenden Sie diesen code:
Hoffe, es wird Ihnen helfen, mit Ihrer Frage! Viel Glück!
Beste Grüße, Dima.
InformationsquelleAutor Dima Shmidt