Anda tahu bahwa jam / waktu API bahasa Anda rusak dan tidak dapat diandalkan sama sekali.
Jadi, Anda tidak diizinkan menggunakan API bawaan apa pun untuk mengakses waktu / tanggal sistem.
Tetapi Anda juga tahu bahwa kemampuan bahasa Anda untuk melakukan matematika tanggal, dan mempertahankan nilai tanggal / waktu dalam suatu variabel sudah benar.
Tulis program yang mencetak tanggal / waktu saat ini tanpa memanggil tanggal / waktu / jam API apa pun. Misalnya DateTime.Now
, GetDate()
dan fungsi serupa tidak diperbolehkan.
Jawaban dengan sebagian besar kemenangan menang.
Dalam kasus seri, jawaban dengan kemenangan yang lebih presisi (yaitu, akurat hingga detik, kemudian milidetik, kemudian mikrodetik, dan sebagainya).
popularity-contest
mikrobia
sumber
sumber
print(input("Please enter the current time"))
.Jawaban:
Jawa
Hampir semua solusi saat ini mengasumsikan bahwa komputer lokal / jarak jauh tidak berbohong tentang waktu saat ini (apakah Anda percaya T-600 juga?).
Poin kunci dalam perhitungan waktu adalah mempercayai sifat murni .
Aplikasi Android ini meminta pengguna untuk mengambil foto langit dan memperkirakan waktu saat ini dengan ketepatan luar biasa:
Hasil:
sumber
"There is no sky. Everyone's going to die"
: DRubi
Jujur saja: waktu hanya berubah ketika ada sesuatu yang diposting di stackoverflow.com ;)
Script ini mengekstrak waktu label "XYs ago" dalam pertanyaan paling atas.
Keluaran:
sumber
Pesta
Seperti ini? (membutuhkan
wget
dangrep
)Output yang saya dapatkan beberapa menit yang lalu:
Atau ini? (membutuhkan
wget
daneog
)Output yang saya dapatkan sekarang: (Gambar oleh xkcd )
peta dunia dengan timezone http://c.xkcd.com/redirect/comic/now
sumber
http://c.xkcd.com/redirect/comic/now
memberikan gambar saathttp://xkcd.com/now
memberikan halaman web.sh / coreutils
Keluaran tanggal dalam format yang agak tidak standar:
YYYY-MM-DD hh:mm:ss.nanoseconds +timezone
Meskipun saya kira itu mungkin tergantung pada lokal.
sumber
cd $(mktemp -d)
set mtime to this
syscall eksplisit terjadi di mana sajatouch
adalah fungsi / perintah perpustakaan karena memiliki efek samping yang diinginkan.PHP
Mengeksploitasi fakta yang
uniqid()
mengembalikan ID berdasarkan waktu.Selama pengujian saya, itu kembali:
Year=2014 Days=79 Hours=18 Minutes=9 Seconds=49
.Saya tidak tahu apakah saya dapat menggunakan
date
format dengan benar, jadi saya mengonversinya secara manual.sumber
uniqid
masih menjadi bagian dari bahasa Anda ... Tapi Anda masih mendapatkan +1uniqid
gunakan API waktu tingkat rendah tetapi bahkan ketika Anda meminta waktu dari server eksternal akan ada panggilan tingkat rendah ke waktu di suatu tempat ...uniqid()
sudah rusak sebelum pertanyaan ini bahkan diajukan. hanya API jam / waktu yang dilanggar dalam pertanyaan iniDNS
Apakah kita hanya mempercayai mesin kita sendiri? Jika demikian, apakah ini diperhitungkan?
Jika itu tidak masuk akal, mengekstraksi waktu dari pembaruan DNS tentu saja:
sumber
Pesta
Hanya untuk selalu sangat tepat dan benar:
atau memotivasi:
sumber
absolutely precise
, menjalankan perintah masih membutuhkan sedikit waktu.echo "Then"
berfungsi untuk persyaratan itu.curl - akurat untuk apa pun kecepatan ping Anda
sumber
Python
Anda yakin tidak tahu jam berapa sekarang?!? Ini pengingat:
sumber
Python 2
Jadi, jamnya benar tetapi waktu API disembunyikan, bukan? Mengapa tidak memeriksa stempel waktu sistem file mentah. Alih-alih membuat file tes, kami hanya menggunakan timestamp akses kita sendiri karena script memiliki untuk dibaca untuk menjalankan (bahkan jika itu disusun). Akurat ke yang kedua. *
Ini harus disimpan dan dijalankan sebagai
t.py
. Bergantian, dapatkan nama skrip saat runtime denganinspect.getfile(inspect.currentframe())
Catatan * Terkadang akurat untuk detik sebelumnya .
sumber
t.pyc
ataut.pyo
sebaliknya?.py
file bahkan jika yang sesuai.pyc
ada. Jadi ini selalu berfungsi dengan benar.Rubi
HTTP, tetapi hanya menggunakan respons meta-data.
sumber
ps
Tidak
ps
tahu waktu? Bisa!Proses dimulai di latar belakang dan
ps
memberi tahu waktu proses dimulai. Sejak proses dimulai di latar belakang, waktu mulai proses hampir sama dengan saat ini.Selain itu, keuntungannya adalah waktu diperoleh di zona waktu lokal. Dan Anda tidak perlu koneksi internet juga!
sumber
vba
karena saya tidak boleh.
gunakan
?DateTime
untuk digunakan, atau jika Anda memasukkannya ke Excel, maka=DateTime()
akan berfungsi sebagai rumus.Tanggal / waktu dikembalikan dalam GMT - Saya meninggalkannya sebagai latihan sia-sia untuk mengubahnya dari string ke waktu lokal
sumber
Bash +
last
+head
+cut
Tepat untuk yang kedua.
last
menggunakan file log/var/log/wtmp
EDIT: Ditambahkan
head
untuk membatasi hanya satu baris.EDIT: Ini berfungsi pada Linux Mint 13 Cinnamon 64-bit tetapi tampaknya ini tergantung pada distro Anda.
sysvinit-utils
(yang menyediakanlast
) versi2.88dsf-13.10ubuntu11.1
last
dibaca dari/var/log/wtmp
(dalam kasus saya) sehingga hasilnya tergantung pada file log itu. Lihat komentar di bawah.EDIT: Rupanya ini tergantung pada sistem uptime sehingga Anda dapat melihat buktinya di sini http://imgur.com/pqGGPmE
sumber
last
dikatakan oleh manusia , “Pengguna reboot log semu setiap kali sistem dinyalakan kembali.” (Dan bahkan itu pun tampaknya tidak benar di sini: pastebin.com/ArUaBcuY )-F
mencetak waktu masuk dan keluar penuh . Karena pengguna saat ini masih masuk, waktu keluar adalah waktu saat ini. Ini ada di Linux Mint 13 cinnamon 64 bit. Mungkin tergantung lokal tapi saya ragu.Python
Mendapatkan ketepatan nanosecond akan sulit kecuali jika waktu yang dikembalikan didasarkan pada ketika program selesai berjalan, bukan ketika itu dimulai. Dengan mengingat hal itu, lebih masuk akal untuk menghitung waktu berdasarkan ketika sebuah program selesai. Ini berarti bahwa kita harus mengontrol ketika suatu program berhenti berjalan untuk mendapatkan ketepatan ekstra.
Catatan ini mengasumsikan baik ketika jam python borked, jam bash tidak atau bahwa jam bash setidaknya tahu hari apa itu. Jika tidak, kita bisa menggunakan ini:
Mungkin sedikit lebih lambat. Saya belum mengujinya.
sumber
BrainFuck
Keluaran:
Saya pikir ini menampilkan waktu di Denver pada saat penulisan. Penjelasan untuk algoritma di sini oleh video Alan Jackson ini .
sumber
Rubi
Tidak menggunakan API jam / waktu bahasa.
sumber
Saya menyukai ide "membaca dari server waktu". Memperbaiki pemformatannya, dan menambahkan beberapa kota untuk bersenang-senang.
PHP
sumber
Pesta
Dengan terima kasih kepada The Goon Show . (Juga, itu benar dua kali sehari!)
sumber
C / WinAPI
Ini membuat asumsi bahwa panggilan API saya sendiri untuk meminta jam rusak, tetapi sistem itu sendiri dapat bekerja dengan waktu dengan benar.
Idenya adalah untuk membuat file sementara, dan membaca waktu pembuatan, yang pada NTFS saya pikir akurat hingga 10 ms. Perhatikan bahwa format output rapuh, tapi itu murni karena saya malas.
Output pada mesin saya sekarang:
Time is 10:39:45.790
sumber
// NO ERROR CHECKING - that's left as an exercise for the reader
- Saya lebih baik tidak melihat ini dalam kode produksiBatch
Menulis baris kosong ke file batch (sendiri), lalu memeriksa waktu tulis terakhir file.
sumber
HTML, CSS & Javascript / jQuery
Ok, jadi saya tahu ini bukan program teknis, dan mungkin berada di luar kriteria, tetapi hanya dalam waktu beberapa jam, ini akan menjadi jam paling akurat di dunia!
CSS
HTML
jQuery
Pada awalnya saya akan melakukan
while(true)
loop, tetapi kemudian ingat bahwa saya tidak ingin crash browser apa pun ...Berikut ini biola dalam aksinya: http://jsfiddle.net/E7Egu/
sumber
Emacs Lisp
Hal google telah dilakukan tetapi tidak di emacs!
sumber
node.js / Javascript
sumber
JavaScript
Karena jam / waktu API rusak, saya menggunakan API Kinerja untuk mendapatkan waktu. Kemudian
Date
hanya digunakan untuk menguraikannya ke string.sumber
PHP:
Ini akan membaca waktu sistem dari antarmuka baris perintah yang tersedia.
Operator backtick digunakan untuk melakukan hal itu: jalankan perintah.
Cara lain adalah:
Yang berisi waktu saat ini di mana skrip dipanggil.
sumber
Pesta
Rok sedikit aturan, tetapi tidak pernah memanggil fungsi waktu. Ini akan menampilkan waktu saat ini saat keluar, dan setiap kali Anda menekan enter setelah itu.
sumber
C #
Metode super-tepat ini akan berfungsi - asalkan Anda akan menjalankan program pada 0: 00: 000000
sumber
Linux, kebanyakan shell, pada perangkat keras dengan RTC:
sumber
tr
sedikit? Mungkin Anda hanya menginginkannyapaste -d' ' /sys/class/rtc/rtc0/{date,time}
?Jawa
Kita semua tahu Java Date / Time API tidak dapat digunakan dan rusak. Jadi, inilah perbaikan yang tidak (setidaknya secara langsung) menggunakan salah satu API yang ada. Bahkan mendukung detik kabisat! :) Outputnya dalam UTC.
sumber