Вы знаете, что API часов / времени вашего языка сломаны, и они совсем не надежны.
Таким образом, вам не разрешается использовать какой-либо встроенный API для доступа к системному времени / дате.
Но вы также знаете, что способность вашего языка выполнять математику даты и сохранять значение даты / времени в переменной является правильной.
Напишите программу, которая печатает текущую дату / время без вызова API даты / времени / часов. Например DateTime.Now
, GetDate()
и подобные функции не допускаются.
Ответ с большинством голосов побед.
В случае ничьей, ответ с большей точностью выигрывает (то есть с точностью до секунд, затем миллисекунд, затем микросекунд и т. Д.).
popularity-contest
микробный
источник
источник
print(input("Please enter the current time"))
.Ответы:
Ява
Практически во всех современных решениях предполагается, что локальный / удаленный компьютер не лжет о текущем времени (вы также поверите T-600?).
Ключевым моментом при расчете времени является доверие к чистой природе .
Это приложение для Android просит пользователя сфотографировать небо и прогнозирует текущее время с невероятной точностью:
Результаты:
источник
"There is no sky. Everyone's going to die"
: DРубин
Давайте будем честными: время меняется только когда что-то публикуется на stackoverflow.com ;)
Скрипт извлекает время метки «XYs ago» в самом верхнем вопросе.
Выход:
источник
удар
Нравится? (требуется
wget
иgrep
)Вывод я получил несколько минут назад:
Или это? (требуется
wget
иeog
)Выходные данные я получаю сейчас: (Изображение от xkcd )
карта мира с часовым поясом http://c.xkcd.com/redirect/comic/now
источник
http://c.xkcd.com/redirect/comic/now
дает изображение, аhttp://xkcd.com/now
дает веб-страницу.SH / Coreutils
Выводит дату в несколько нестандартном формате:
YYYY-MM-DD hh:mm:ss.nanoseconds +timezone
хотя, думаю, это может зависеть от локали.
источник
cd $(mktemp -d)
set mtime to this
системного вызова нигдеtouch
это библиотечная функция / команда, поскольку она имеет желаемый побочный эффект.PHP
Используйте тот факт, что
uniqid()
возвращает идентификатор на основе времени.Во время моего теста, он вернулся:
Year=2014 Days=79 Hours=18 Minutes=9 Seconds=49
.Я не знаю, могу ли я использовать
date
для правильного форматирования, поэтому я преобразовал его вручную.источник
uniqid
все еще является частью вашего языка ... Но все же вы получаете +1uniqid
используйте низкоуровневый API времени, но даже когда вы запрашиваете время у внешнего сервера, где-то будет низкоуровневый API для вызова времени ...uniqid()
был сломан еще до того, как был задан этот вопрос. в этом вопросеDNS
Разве мы не доверяем только своей машине? Если так, это считается?
Если это не считается, извлечение времени из обновления DNS определенно делает:
источник
удар
Просто чтобы быть всегда абсолютно точным и правильным:
или мотивация:
источник
absolutely precise
, выполнение команды все равно займет немного времени.echo "Then"
работает для этого требования.curl - с точностью до вашей скорости пинга
источник
питон
Вы уверены, что не знаете, который час?!? Вот напоминание:
источник
Python 2
Итак, часы правильные, но API времени скрыт, верно? Почему бы не проверить временную метку необработанной файловой системы. Вместо того, чтобы создавать тестовый файл, мы просто используем нашу собственную временную метку доступа, так как скрипт должен быть прочитан для запуска (даже если он был скомпилирован). Точно ко второму. *
Это следует сохранить и запустить как
t.py
. Альтернативно, получите имя скрипта во время выполнения сinspect.getfile(inspect.currentframe())
Примечание * Иногда с точностью до предыдущей секунды.
источник
t.pyc
илиt.pyo
вместо этого?.py
файла, даже если соответствующий.pyc
присутствует. Так что это всегда работает правильно.Рубин
HTTP, но только с использованием метаданных ответа.
источник
п.с.
Не можете
ps
сказать время? Может!Процесс запускается в фоновом режиме и
ps
сообщает время начала процесса. Поскольку процесс начался в фоновом режиме, время начала процесса практически такое же, как и сейчас.Кроме того, преимущество заключается в том, что время получается в местном часовом поясе. И вам не нужно подключение к интернету!
источник
УВА
потому что я не должен.
использовать
?DateTime
для использования, или если вы положите его в Excel, то=DateTime()
будет работать как формула.Дата / время возвращаются в GMT - я оставляю это как бесполезное упражнение, чтобы преобразовать его из строки в местное время
источник
Баш +
last
+head
+cut
Точно ко второму.
last
использует файл журнала/var/log/wtmp
РЕДАКТИРОВАТЬ: Добавлено,
head
чтобы ограничить только одной строкой.РЕДАКТИРОВАТЬ: Это работает на Linux Mint 13 Cinnamon 64-bit, но кажется, что это зависит от вашего дистрибутива.
sysvinit-utils
(которая обеспечиваетlast
) версия2.88dsf-13.10ubuntu11.1
last
считывается из/var/log/wtmp
(в моем случае), поэтому результаты зависят от этого файла журнала. Смотрите комментарии ниже.РЕДАКТИРОВАТЬ: Очевидно, это зависит от времени работы системы, поэтому вы можете увидеть доказательство здесь http://imgur.com/pqGGPmE
источник
last
говорит: «Псевдопользователь перезагружает журналы при каждой перезагрузке системы». (И даже здесь это не кажется правильным: pastebin.com/ArUaBcuY )-F
печатает полное время входа и выхода из системы . Поскольку текущий пользователь все еще вошел в систему, время выхода из системы является текущим временем. Это на Linux Mint 13 cinnamon 64 bit. Это может зависеть от локали, но я сомневаюсь в этом.питон
Получить точность наносекунды было бы непросто, если только возвращаемое время не было основано на завершении программы, а не на ее запуске. Имея это в виду, имеет больше смысла рассчитывать время на основе, когда программа заканчивается. Это означает, что мы должны контролировать, когда программа останавливается, чтобы получить дополнительную точность.
Обратите внимание, что предполагается, что либо когда часы Python работают, либо нет, либо часы Bash, по крайней мере, знают, какой сегодня день. Если нет, мы можем вместо этого использовать это:
Может быть немного медленнее, хотя. Я не проверял это.
источник
Brainfuck
Выход:
Я думаю, что он отображает время в Денвере на момент написания. Объяснение алгоритма здесь на этом видео Алана Джексона .
источник
Рубин
Не использует API часов / времени языка.
источник
Мне понравилась идея «чтение с сервера времени». Хотя улучшено его форматирование и добавлено несколько городов для развлечения.
PHP
источник
удар
Благодаря The Goon Show . (Кроме того, это правильно два раза в день!)
источник
С / WinAPI
Это делает предположение, что мои собственные вызовы API для запроса часов не работают, но сама система может корректно работать со временем.
Идея состоит в том, чтобы создать временный файл и прочитать время создания, которое в NTFS, я думаю, точно до 10 мс. Обратите внимание, что форматирование вывода сомнительно, но это просто, потому что я ленивый.
Вывод на мою машину только сейчас:
Time is 10:39:45.790
источник
// NO ERROR CHECKING - that's left as an exercise for the reader
- Я лучше не вижу этого в производственном кодепартия
Записывает пустую строку в пакетный файл (сам), затем проверяет время последней записи файла.
источник
HTML, CSS и Javascript / jQuery
Итак, я знаю, что технически это не программа и, вероятно, выходит за рамки критериев, но всего через несколько часов это будут самые точные часы в мире!
CSS
HTML
JQuery
Сначала я собирался сделать
while(true)
цикл, но потом вспомнил, что я не хочу сбивать браузеры ...Вот скрипка в действии: http://jsfiddle.net/E7Egu/
источник
Emacs Lisp
Google вещь была сделана, но не в Emacs!
источник
node.js / Javascript
источник
JavaScript
Поскольку API часов / времени не работает, я использую Performance API, чтобы получить время. Затем
Date
используется только для анализа строки.источник
PHP:
Это будет считывать системное время из доступного интерфейса командной строки.
Оператор backtick используется для этого: запустить команду.
Другой способ будет:
Который содержит текущее время, в которое был вызван скрипт.
источник
удар
Немного обходит правила, но это никогда не вызывает функцию времени. Он будет отображать текущее время при выходе, и каждый раз, когда вы нажимаете ввод, после этого.
источник
C #
Этот сверхточный метод будет работать - при условии, что вы запустите программу в 0: 00: 00,0000
источник
Linux, большинство оболочек, на оборудовании с RTC:
источник
tr
? Может ты просто хочешьpaste -d' ' /sys/class/rtc/rtc0/{date,time}
?Ява
Мы все знаем, что Java Date / Time API непригоден и сломан. Итак, вот исправление, которое (по крайней мере, напрямую) не использует ни один из существующих API. Он даже поддерживает високосные секунды! :) Вывод в UTC.
источник