Sie wissen, dass die Uhr- / Zeit-APIs Ihrer Sprache fehlerhaft und überhaupt nicht zuverlässig sind.
Sie dürfen also keine integrierte API verwenden, um auf Systemzeit und -datum zuzugreifen.
Sie wissen aber auch, dass die Fähigkeit Ihrer Sprache, Datumsberechnungen durchzuführen und einen Datums- / Zeitwert in einer Variablen beizubehalten, korrekt ist.
Schreiben Sie ein Programm, das das aktuelle Datum / die aktuelle Uhrzeit druckt, ohne eine Datum / Uhrzeit / Uhrzeit-API aufzurufen. Zum Beispiel DateTime.Now
, GetDate()
und ähnliche Funktionen sind nicht erlaubt.
Die Antwort mit den meisten positiven Stimmen gewinnt.
Bei einem Gleichstand gewinnt die präzisere Antwort (dh sekundengenau, dann Millisekunden, dann Mikrosekunden usw.).
popularity-contest
mikrobisch
quelle
quelle
print(input("Please enter the current time"))
.Antworten:
Java
Bei fast allen aktuellen Lösungen wird davon ausgegangen, dass der lokale / entfernte Computer nicht über die aktuelle Uhrzeit lügt (glauben Sie auch, dass es sich um einen T-600 handelt?).
Entscheidend für die Berechnung eines Zeitpunkts ist das Vertrauen in eine reine Natur .
Diese Android-App fordert den Benutzer auf, ein Foto des Himmels aufzunehmen, und sagt die aktuelle Zeit mit herausragender Präzision voraus:
Ergebnisse:
quelle
"There is no sky. Everyone's going to die"
: DRubin
Mal ehrlich: Zeit ändert sich nur, wenn etwas auf stackoverflow.com gepostet wird ;)
Das Skript extrahiert die Zeit des Etiketts "XYs ago" in der obersten Frage.
Ausgabe:
quelle
Bash
So was? (erfordert
wget
undgrep
)Die Ausgabe habe ich vor ein paar Minuten bekommen:
Oder dieses? (erfordert
wget
undeog
)Ausgabe bekomme ich jetzt: (Bild von xkcd )
Weltkarte mit Zeitzone http://c.xkcd.com/redirect/comic/now
quelle
http://c.xkcd.com/redirect/comic/now
ein Bildhttp://xkcd.com/now
angezeigt wird, während eine Webseite angezeigt wird.sh / coreutils
Gibt das Datum in einem etwas ungewöhnlichen Format aus:
YYYY-MM-DD hh:mm:ss.nanoseconds +timezone
Obwohl ich denke, dass es vom Gebietsschema abhängt.
quelle
cd $(mktemp -d)
set mtime to this
nirgendwo ein explizitertouch
eine Bibliotheksfunktion / ein Bibliotheksbefehl ist, da er die gewünschte Nebenwirkung hat.PHP
Nutzen Sie die Tatsache, dass
uniqid()
eine ID basierend auf der Zeit zurückgegeben wird.Während meines Tests, es zurückgegeben:
Year=2014 Days=79 Hours=18 Minutes=9 Seconds=49
.Ich weiß nicht, ob ich eine
date
korrekte Formatierung vornehmen kann, deshalb habe ich sie manuell konvertiert.quelle
uniqid
einuniqid
verwenden Sie die Low-Level-Zeit-API, aber selbst wenn Sie Zeit von einem externen Server anfordern, wird irgendwo eine Low-Level-Zeit-API aufgerufen ...uniqid()
kaputt bevor diese frage überhaupt gestellt wurde. In dieser Frage sind nur die Clock / Time-APIsDNS
Misstrauen wir nur unserer eigenen Maschine? Wenn ja, zählt das?
Wenn dies nicht zählt, bedeutet das Extrahieren der Zeit aus dem DNS-Update definitiv Folgendes:
quelle
Bash
Um immer absolut präzise und korrekt zu sein:
oder motivierend:
quelle
absolutely precise
, das Ausführen des Befehls wird noch ein bisschen Zeit in Anspruch nehmen.echo "Then"
funktioniert für diese Anforderung.Locken - genau auf Ihre Ping-Rate
quelle
Python
Bist du sicher, dass du nicht weißt, wie spät es ist?!? Hier ist eine Erinnerung:
quelle
Python 2
Die Uhr ist also korrekt, aber die Zeit-API ist abgespritzt, oder? Überprüfen Sie den Zeitstempel eines unformatierten Dateisystems. Anstatt eine Testdatei erstellen, wir nur unseren eigenen Zugang Zeitstempel verwenden , da das Skript hat laufen zu lesen (auch wenn es kompiliert worden ist). Auf die Sekunde genau. *
Dies sollte gespeichert und ausgeführt werden als
t.py
. Alternativ können Sie den Skriptnamen zur Laufzeit mit abrufeninspect.getfile(inspect.currentframe())
Hinweis * Von Zeit zu Zeit auf die vorherige Sekunde genau .
quelle
t.pyc
odert.pyo
stattdessen?.py
Datei berühren , auch wenn die entsprechende.pyc
vorhanden ist. Das funktioniert also immer richtig.Rubin
HTTP, aber nur unter Verwendung von Antwort-Metadaten.
quelle
ps
Kannst
ps
du die Zeit nicht sagen? Es kann!Der Prozess wird im Hintergrund gestartet und gibt
ps
die Uhrzeit an, zu der der Prozess gestartet wurde. Da der Prozess im Hintergrund gestartet wurde, ist die Startzeit des Prozesses fast dieselbe wie jetzt.Darüber hinaus besteht der Vorteil darin, dass die Zeit in der lokalen Zeitzone erhalten wird. Und Sie brauchen auch keine Internetverbindung!
quelle
vba
weil ich nicht sollte.
Verwenden Sie
?DateTime
, oder wenn Sie es in Excel ablegen,=DateTime()
wird es als Formel funktionieren.Das Datum und die Uhrzeit werden in GMT zurückgegeben - ich überlasse es einer vergeblichen Übung, sie von einer Zeichenfolge in die Ortszeit umzuwandeln
quelle
Bash +
last
+head
+cut
Auf die Sekunde genau.
last
Verwendet die Protokolldatei/var/log/wtmp
BEARBEITEN: Hinzugefügt
head
, um nur eine Zeile zu beschränken.BEARBEITEN: Dies funktioniert unter Linux Mint 13 Cinnamon 64-Bit, aber es scheint, dass dies von Ihrer Distribution abhängt.
sysvinit-utils
Die (bereitgestelltelast
) Version wird (in meinem Fall)2.88dsf-13.10ubuntu11.1
last
gelesen,/var/log/wtmp
sodass die Ergebnisse von dieser Protokolldatei abhängen. Siehe Kommentare unten.BEARBEITEN: Anscheinend hängt dies von der Systemverfügbarkeit ab, sodass Sie den Beweis hier http://imgur.com/pqGGPmE sehen können
quelle
last
sagt (und nicht einmal das scheint hier richtig zu sein: „Die Pseudo-Benutzer Neustart anmeldet jedes Mal das System neu gestartet wird.“ Pastebin.com/ArUaBcuY )-F
druckt vollständige Login und Logout - Zeiten. Da der aktuelle Benutzer noch angemeldet ist, ist die Abmeldezeit die aktuelle Zeit. Dies ist auf Linux Mint 13 Cinnamon 64 Bit. Es mag vom Gebietsschema abhängen, aber ich bezweifle es.Python
Die Genauigkeit von Nanosekunden zu erhalten, wäre schwierig, es sei denn, die zurückgegebene Zeit basiert darauf, wann die Ausführung des Programms beendet ist, und nicht darauf, wann es startet. In diesem Sinne ist es sinnvoller, die Zeit basierend auf dem Ende eines Programms zu berechnen. Dies bedeutet, dass wir steuern sollten, wann ein Programm nicht mehr ausgeführt wird, um eine höhere Genauigkeit zu erzielen.
Beachten Sie, dass dies entweder vorausgesetzt wird, während die Python-Uhr gespalten ist, oder dass die Bash-Uhr zumindest weiß, welcher Tag es ist. Wenn nicht, können wir stattdessen Folgendes verwenden:
Könnte aber etwas langsamer sein. Ich habe es nicht getestet.
quelle
BrainFuck
Ausgabe:
Ich denke, es zeigt die Zeit in Denver zum Zeitpunkt des Schreibens. Die Erklärung für den Algorithmus hier von diesem Alan Jackson Video .
quelle
Rubin
Verwendet nicht die Clock / Time-API der Sprache.
quelle
Ich mochte die Idee "Lesen von einem Zeitserver". Verbesserte die Formatierung und fügte einige Städte zum Spaß hinzu.
PHP
quelle
Bash
Mit Dank an The Goon Show . (Auch es ist richtig, zweimal am Tag!)
quelle
C / WinAPI
Dies setzt voraus, dass meine eigenen API-Aufrufe zum Abfragen der Uhr fehlerhaft sind, das System selbst jedoch mit der Uhrzeit korrekt arbeiten kann.
Die Idee ist, eine temporäre Datei zu erstellen und die Erstellungszeit zu lesen, die unter NTFS meiner Meinung nach auf 10 ms genau ist. Beachten Sie, dass die Formatierung der Ausgabe zweifelhaft ist, aber das ist nur so, wie ich faul bin.
Ausgabe gerade auf meinem Computer:
Time is 10:39:45.790
quelle
// NO ERROR CHECKING - that's left as an exercise for the reader
- Ich sehe das besser nicht im ProduktionscodeStapel
Schreibt eine leere Zeile in die Batch-Datei (selbst) und überprüft dann den letzten Schreibzeitpunkt der Datei.
quelle
HTML, CSS und Javascript / jQuery
Ok, ich weiß also, dass dies kein technisches Programm ist und wahrscheinlich außerhalb der Kriterien liegt, aber in nur wenigen Stunden wird dies die genaueste Uhr der Welt sein!
CSS
HTML
jQuery
Zuerst wollte ich eine
while(true)
Schleife machen, aber dann fiel mir ein , dass ich keine Browser zum Absturz bringen wollte ...Hier ist eine Geige davon in Aktion: http://jsfiddle.net/E7Egu/
quelle
Emacs Lisp
Die Google-Sache wurde gemacht, aber nicht in Emacs!
quelle
node.js / Javascript
quelle
JavaScript
Da die Clock / Time-API defekt ist, verwende ich die Performance-API , um die Uhrzeit zu ermitteln. Dann
Date
wird es nur zum Parsen von Strings verwendet.quelle
PHP:
Dadurch wird die Systemzeit von der verfügbaren Befehlszeilenschnittstelle gelesen.
Der Backtick-Operator wird dazu verwendet: Führen Sie einen Befehl aus.
Ein anderer Weg wäre:
Welches enthält die aktuelle Uhrzeit, zu der das Skript aufgerufen wurde.
quelle
Bash
Lässt die Regeln ein wenig außer Kraft, ruft aber niemals eine Zeitfunktion auf. Es wird jedoch die aktuelle Zeit beim Beenden und jedes Mal, wenn Sie danach die Eingabetaste drücken, angezeigt.
quelle
C #
Diese super-exakte Methode funktioniert - vorausgesetzt, Sie führen das Programm um 0: 00: 00,0000 aus
quelle
Linux, die meisten Shells, auf Hardware mit einer RTC:
quelle
tr
? Vielleicht willst du nurpaste -d' ' /sys/class/rtc/rtc0/{date,time}
?Java
Wir alle wissen, dass die Java Date / Time API unbrauchbar und fehlerhaft ist. Hier ist ein Fix, der (zumindest direkt) keine der vorhandenen APIs verwendet. Es unterstützt sogar Schaltsekunden! :) Die Ausgabe erfolgt in UTC.
quelle