Você sabe que as APIs de relógio / hora do seu idioma estão quebradas e não são confiáveis.
Portanto, você não tem permissão para usar nenhuma API interna para acessar a hora / data do sistema.
Mas você também sabe que a capacidade do seu idioma de realizar cálculos de datas e manter um valor de data / hora em uma variável estão corretos.
Escreva um programa que imprima a data / hora atual sem chamar nenhuma API de data / hora / relógio. Por exemplo DateTime.Now
, GetDate()
funções semelhantes não são permitidas.
A resposta com a maioria dos votos positivos vence.
Em caso de empate, a resposta com mais precisão vence (ou seja, precisa até segundos, depois milissegundos, depois microssegundos e assim por diante).
popularity-contest
microbiano
fonte
fonte
print(input("Please enter the current time"))
.Respostas:
Java
Quase todas as soluções atuais assumem que o computador local / remoto não está mentindo cerca de uma hora atual (você acreditaria no T-600 também?).
O ponto chave no cálculo do tempo é confiar em uma natureza pura .
Este aplicativo Android pede ao usuário para tirar uma foto do céu e está prevendo a hora atual com precisão excepcional:
Resultados:
fonte
"There is no sky. Everyone's going to die"
: DRubi
Sejamos honestos: o tempo muda apenas quando algo é publicado no stackoverflow.com ;)
O script extrai o tempo do rótulo "XYs ago" na pergunta principal.
Resultado:
fonte
Bater
Como isso? (requer
wget
egrep
)A saída que recebi alguns minutos atrás:
Ou isto? (requer
wget
eeog
)Saída que recebo agora: (Imagem por xkcd )
mapa-múndi com fuso horário http://c.xkcd.com/redirect/comic/now
fonte
http://c.xkcd.com/redirect/comic/now
fornece uma imagem enquantohttp://xkcd.com/now
fornece uma página da web.sh / coreutils
Mostra a data em um formato um pouco fora do padrão:
YYYY-MM-DD hh:mm:ss.nanoseconds +timezone
embora eu ache que possa depender da localidade.
fonte
cd $(mktemp -d)
set mtime to this
syscall acontecendo em qualquer lugartouch
é uma função / comando da biblioteca, pois tem o efeito colateral desejado.PHP
Explorar o fato de que
uniqid()
retorna um ID com base no horário.Durante o meu teste, ele retornou:
Year=2014 Days=79 Hours=18 Minutes=9 Seconds=49
.Não sei se posso usar
date
para formatar corretamente e converti-o manualmente.fonte
uniqid
ainda é uma parte de seu idioma ... Mas você ainda obter um +1uniqid
use baixo nível API tempo, mas mesmo quando você solicitar tempo a partir de um servidor externo, haverá uma chamada de baixo nível para outro tempo API ...uniqid()
foi quebrado antes mesmo que essa pergunta fosse feita. apenas o relógio / APIs de tempo são divididos nesta questãoDNS
Desconfiamos apenas de nossa própria máquina? Se sim, isso conta?
Se isso não conta, extrair tempo da atualização do DNS definitivamente conta:
fonte
Bater
Apenas para ser sempre absolutamente preciso e correto:
ou motivador:
fonte
absolutely precise
, a execução do comando ainda levará um pouco de tempo.echo "Then"
funciona para esse requisito.curl - preciso para qualquer que seja sua taxa de ping
fonte
Pitão
Tem certeza de que não sabe que horas são?!? Aqui está um lembrete:
fonte
Python 2
Então, o relógio está correto, mas a API da hora é liberada, certo? Por que não verificar um registro de data e hora do sistema de arquivos brutos. Em vez de criar um arquivo de teste, apenas usamos nosso próprio registro de data e hora de acesso, pois o script precisa ser lido para ser executado (mesmo que tenha sido compilado). Preciso para o segundo. *
Isso deve ser salvo e executado como
t.py
. Como alternativa, obtenha o nome do script em tempo de execução cominspect.getfile(inspect.currentframe())
Nota * Ocasionalmente exato em relação ao segundo anterior .
fonte
t.pyc
ou emt.pyo
vez disso?.py
arquivo, mesmo que o correspondente.pyc
esteja presente. Portanto, isso sempre funciona corretamente.Rubi
HTTP, mas apenas usando metadados de resposta.
fonte
ps
Não
ps
sabe as horas? Pode!O processo é iniciado em segundo plano e
ps
informa a hora em que o processo foi iniciado. Desde que o processo começou em segundo plano, o horário de início do processo é praticamente o mesmo de agora.Além disso, a vantagem é que a hora é obtida no fuso horário local. E você também não precisa de uma conexão à Internet!
fonte
vba
porque eu não deveria.
use
?DateTime
to use, ou se você o colocar no Excel,=DateTime()
funcionará como uma fórmula.A data / hora é retornada no GMT - eu o deixo como um exercício de futilidade para convertê-lo de uma string para a hora local
fonte
Bash +
last
+head
+cut
Preciso para o segundo.
last
usa o arquivo de log/var/log/wtmp
EDIT: Adicionado
head
para limitar a apenas uma linha.EDIT: Isso funciona no Linux Mint 13 Cinnamon de 64 bits, mas parece que isso depende da sua distribuição.
sysvinit-utils
(que fornecelast
) a versão é2.88dsf-13.10ubuntu11.1
last
leituras/var/log/wtmp
(no meu caso) para que os resultados dependam desse arquivo de log. Veja os comentários abaixo.EDIT: Aparentemente, isso depende do tempo de atividade do sistema, para que você possa ver a prova aqui http://imgur.com/pqGGPmE
fonte
last
diz: "A reinicialização do pseudo usuário faz logon sempre que o sistema é reiniciado." (E nem isso parece estar correto aqui: pastebin.com/ArUaBcuY )-F
imprime os tempos completos de login e logout . Como o usuário atual ainda está conectado, a hora do logout é a hora atual. Este é o Linux Mint 13 canela de 64 bits. Pode ser dependente da localidade, mas duvido.Pitão
Obter precisão em nanossegundos seria complicado, a menos que o tempo retornado fosse baseado no momento em que o programa termina a execução, não no início. Com isso em mente, faz mais sentido calcular o tempo com base no término de um programa. Isso significa que devemos controlar quando um programa para de ser executado para obter precisão extra.
Observe que isso pressupõe que enquanto o relógio python está acionado, o relógio bash não está ou que o relógio bash sabe pelo menos que dia é hoje. Caso contrário, podemos usar isso:
Pode ser um pouco mais lento, no entanto. Eu não testei.
fonte
BrainFuck
Resultado:
Eu acho que mostra o tempo em Denver no momento em que escrevi. A explicação para o algoritmo aqui neste vídeo de Alan Jackson .
fonte
Rubi
Não usa a API de relógio / hora do idioma.
fonte
Gostei da idéia "ler de um servidor de horário". Melhorou sua formatação e adicionou algumas cidades por diversão.
PHP
fonte
Bater
Com agradecimentos ao The Goon Show . (Além disso, é certo duas vezes por dia!)
fonte
C / WinAPI
Isso pressupõe que minha própria API chama para consultar o relógio está quebrada, mas o próprio sistema pode funcionar com o horário corretamente.
A idéia é criar um arquivo temporário e ler o tempo de criação, que, no NTFS, acho que é preciso até 10ms. Observe que a formatação da saída é duvidosa, mas isso é puramente preguiçoso.
Saída na minha máquina agora:
Time is 10:39:45.790
fonte
// NO ERROR CHECKING - that's left as an exercise for the reader
- É melhor não ver isso no código de produçãoLote
Grava uma linha em branco no arquivo em lotes (em si) e verifica a última hora de gravação do arquivo.
fonte
HTML, CSS e Javascript / jQuery
Ok, então eu sei que tecnicamente não é um programa e provavelmente está fora dos critérios, mas em apenas algumas horas, este será o relógio mais preciso do mundo!
CSS
HTML
jQuery
No começo, eu fazia um
while(true)
loop, mas depois lembrei que não queria travar nenhum navegador ...Aqui está um violino em ação: http://jsfiddle.net/E7Egu/
fonte
Emacs Lisp
A coisa do google foi feita, mas não no emacs!
fonte
node.js / Javascript
fonte
Javascript
Como a API de relógio / hora está quebrada, eu uso a API de desempenho para obter a hora. Então
Date
é usado apenas para analisá-lo em string.fonte
PHP:
Isso lerá a hora do sistema na interface de linha de comando disponível.
O operador backtick é usado para fazer exatamente isso: execute um comando.
Outra maneira seria:
Que contém o horário atual em que o script foi chamado.
fonte
Bater
Contorna as regras um pouco, mas nunca chama uma função de tempo. No entanto, ele exibirá a hora atual na saída e toda vez que você pressionar enter depois disso.
fonte
C #
Esse método super-exato funcionará - desde que você execute o programa em 0: 00: 00.0000
fonte
Linux, a maioria dos shells, em hardware com um RTC:
fonte
tr
? Talvez você só queirapaste -d' ' /sys/class/rtc/rtc0/{date,time}
?Java
Todos sabemos que a API Java Data / Hora não pode ser usada e está corrompida. Então, aqui está uma correção que (pelo menos diretamente) não usa nenhuma API existente. Ele ainda suporta segundos bissextos! :) A saída está no UTC.
fonte