Usted sabe que las API de reloj / hora de su idioma están rotas y no son confiables en absoluto.
Por lo tanto, no puede utilizar ninguna API integrada para acceder a la hora / fecha del sistema.
Pero también sabe que la capacidad de su idioma para realizar cálculos de fechas y retener un valor de fecha / hora en una variable es correcta.
Escriba un programa que imprima la fecha / hora actual sin llamar a ninguna API de fecha / hora / reloj. Por ejemplo DateTime.Now
, GetDate()
y funciones similares no están permitidas.
La respuesta con la mayoría de los votos a favor gana.
En caso de empate, la respuesta con más precisión gana (es decir, precisa hasta segundos, luego milisegundos, luego microsegundos, etc.).
popularity-contest
microbiano
fuente
fuente
print(input("Please enter the current time"))
.Respuestas:
Java
Casi todas las soluciones actuales suponen que la computadora local / remota no miente sobre una hora actual (¿creería usted también en T-600?).
El punto clave en el cálculo del tiempo es confiar en una naturaleza pura .
Esta aplicación de Android le pide al usuario que tome una foto del cielo y predice la hora actual con una precisión sobresaliente:
Resultados:
fuente
"There is no sky. Everyone's going to die"
: DRubí
Seamos honestos: el tiempo solo cambia cuando algo se publica en stackoverflow.com ;)
El script extrae el tiempo de la etiqueta "Hace XYs" en la pregunta principal.
Salida:
fuente
Golpetazo
¿Me gusta esto? (requiere
wget
ygrep
)La salida que obtuve hace unos minutos:
¿O esto? (requiere
wget
yeog
)Salida que obtengo ahora: (Imagen de xkcd )
mapa mundial con zona horaria http://c.xkcd.com/redirect/comic/now
fuente
http://c.xkcd.com/redirect/comic/now
proporciona una imagen mientrashttp://xkcd.com/now
proporciona una página web.sh / coreutils
Emite la fecha en un formato algo no estándar:
YYYY-MM-DD hh:mm:ss.nanoseconds +timezone
aunque supongo que podría depender de la configuración regional.
fuente
cd $(mktemp -d)
set mtime to this
syscall explícito sucediendo en ninguna partetouch
es una función / comando de la biblioteca ya que tiene el efecto secundario deseado.PHP
Explote el hecho de que
uniqid()
devuelve una identificación basada en el tiempo.Durante mi prueba, ha devuelto:
Year=2014 Days=79 Hours=18 Minutes=9 Seconds=49
.No sé si puedo usar
date
para formatear correctamente, así que lo convertí manualmente.fuente
uniqid
sigue siendo parte de su idioma ... Pero aún así obtiene un +1uniqid
use una API de tiempo de bajo nivel, pero incluso cuando solicite tiempo de un servidor externo, habrá una API de llamada a tiempo de bajo nivel en alguna parte ...uniqid()
se rompió antes de que se hiciera esta pregunta. solo las API de reloj / hora están rotas en esta preguntaDNS
¿Solo desconfiamos de nuestra propia máquina? Si es así, ¿cuenta esto?
Si eso no cuenta, el tiempo de extracción de la actualización de DNS definitivamente sí:
fuente
Golpetazo
Solo para ser siempre absolutamente preciso y correcto:
o motivador:
fuente
absolutely precise
, ejecutar el comando todavía tomará un poco de tiempo.echo "Then"
funciona para ese requisito.curl: preciso a cualquier velocidad de ping
fuente
Pitón
¿Estás seguro de que no sabes qué hora es? Aquí hay un recordatorio:
fuente
Python 2
Entonces, el reloj es correcto pero la API de tiempo está manguera, ¿verdad? ¿Por qué no verificar una marca de tiempo del sistema de archivos sin formato? En lugar de crear un archivo de prueba, que sólo tiene que utilizar nuestra propia marca de tiempo de acceso desde el guión tiene que ser leído a correr (incluso si se ha compilado). Preciso al segundo. *
Esto debe guardarse y ejecutarse como
t.py
. Alternativamente, obtenga el nombre del script en tiempo de ejecución coninspect.getfile(inspect.currentframe())
Nota * Ocasionalmente precisa al segundo anterior .
fuente
t.pyc
o en sut.pyo
lugar?.py
archivo incluso si.pyc
está presente el correspondiente . Entonces esto siempre funciona correctamente.Rubí
HTTP, pero solo usando metadatos de respuesta.
fuente
PD
No puedo
ps
decir la hora? ¡Puede!El proceso se inicia en segundo plano y
ps
le dice a qué hora comenzó el proceso. Dado que el proceso comenzó en segundo plano, la hora de inicio del proceso es más o menos la misma que ahora.Además, la ventaja es que la hora se obtiene en la zona horaria local. ¡Y tampoco necesitas una conexión a Internet!
fuente
vba
porque no debería
usar
?DateTime
para usar, o si lo pones en Excel, entonces=DateTime()
funcionará como una fórmula.La fecha / hora se devuelve en GMT: lo dejo como un ejercicio inútil para convertirlo de una cadena a hora local
fuente
Bash +
last
+head
+cut
Preciso al segundo.
last
usa el archivo de registro/var/log/wtmp
EDITAR: agregado
head
para limitar a una sola línea.EDITAR: Esto funciona en Linux Mint 13 Cinnamon 64-bit pero parece que esto depende de su distribución.
sysvinit-utils
(que proporcionalast
) la versión se2.88dsf-13.10ubuntu11.1
last
lee/var/log/wtmp
(en mi caso), por lo que los resultados dependen de ese archivo de registro. Ver comentarios a continuación.EDITAR: Aparentemente, esto depende del tiempo de actividad del sistema para que pueda ver la prueba aquí http://imgur.com/pqGGPmE
fuente
last
dice "El reinicio del pseudo usuario ingresa cada vez que se reinicia el sistema". (Y ni siquiera eso parece ser correcto aquí: pastebin.com/ArUaBcuY )-F
imprime los tiempos completos de inicio y cierre de sesión . Como el usuario actual todavía está conectado, la hora de cierre de sesión es la hora actual. Esto está en Linux Mint 13 canela 64 bit. Puede depender de la configuración regional, pero lo dudo.Pitón
Obtener precisión de nanosegundos sería complicado a menos que el tiempo devuelto se basara en cuándo el programa termina de ejecutarse, no cuando comienza. Con eso en mente, tiene más sentido calcular el tiempo en función de cuándo termina un programa. Esto significa que debemos controlar cuándo un programa deja de ejecutarse para obtener mayor precisión.
Tenga en cuenta que esto supone que mientras el reloj de pitón está descorchado, el reloj bash no lo está o que el reloj bash al menos sabe qué día es. Si no, podemos usar esto:
Sin embargo, podría ser un poco más lento. No lo he probado.
fuente
BrainFuck
Salida:
Creo que muestra la hora en Denver al momento de escribir. La explicación del algoritmo aquí por este video de Alan Jackson .
fuente
Rubí
No utiliza la API de reloj / hora del idioma.
fuente
Me gustó la idea de "leer desde un servidor horario". Sin embargo, mejoró su formato y agregó algunas ciudades por diversión.
PHP
fuente
Golpetazo
Gracias a The Goon Show . (¡Además, es correcto dos veces al día!)
fuente
C / WinAPI
Esto supone que mis propias llamadas a la API para consultar el reloj están rotas, pero el sistema en sí puede funcionar correctamente con la hora.
La idea es crear un archivo temporal y leer el tiempo de creación, que en NTFS creo que es preciso hasta 10 ms. Tenga en cuenta que el formato de la salida es dudoso, pero eso es puramente como soy flojo.
Salida en mi máquina justo ahora:
Time is 10:39:45.790
fuente
// NO ERROR CHECKING - that's left as an exercise for the reader
- Mejor no veo esto en el código de producciónLote
Escribe una línea en blanco en el archivo por lotes (en sí), luego verifica el último tiempo de escritura del archivo.
fuente
HTML, CSS y Javascript / jQuery
Ok, sé que esto no es técnicamente un programa, y probablemente esté fuera de los criterios, pero en solo unas pocas horas, ¡este será el reloj más preciso del mundo!
CSS
HTML
jQuery
Al principio iba a hacer un
while(true)
bucle, pero luego recordé que no quería bloquear ningún navegador ...Aquí hay un violín en acción: http://jsfiddle.net/E7Egu/
fuente
Emacs Lisp
¡Lo de Google se ha hecho pero no en emacs!
fuente
node.js / Javascript
fuente
JavaScript
Dado que la API de reloj / hora está rota, uso la API de rendimiento para obtener la hora. Entonces
Date
solo se usa para analizarlo en cadena.fuente
PHP:
Esto leerá la hora del sistema desde la interfaz de línea de comandos disponible.
El operador de retroceso se usa para hacer exactamente eso: ejecutar un comando.
Otra forma sería:
Que contiene la hora actual a la que se llamó el script.
fuente
Golpetazo
Bordea las reglas un poco, pero nunca llama a una función de tiempo. Sin embargo, mostrará la hora actual al salir, y cada vez que presione enter después de eso.
fuente
C#
Este método súper exacto funcionará, siempre que ejecute el programa a las 0: 00: 00,0000
fuente
Linux, la mayoría de los shells, en hardware con un RTC:
fuente
tr
bit? Tal vez solo quierespaste -d' ' /sys/class/rtc/rtc0/{date,time}
?Java
Todos sabemos que la API de fecha / hora de Java no se puede usar y está rota. Entonces, aquí hay una solución que no utiliza (al menos directamente) ninguna de las API existentes. ¡Incluso admite segundos intercalares! :) La salida está en UTC.
fuente