Keluarkan Waktu Saat Ini


49

Tantangan

Anda harus menampilkan waktu saat ini secara terus-menerus (sampai dibatalkan dengan interupsi), sekali setiap detik, dengan salah satu dari cara berikut:

  • Itu harus dalam format 24 jam atau AM / PM.
    • Jika itu yang pertama, itu harus diberi spasi dengan titik dua (yaitu 15:47:36).
    • Jika itu yang terakhir, itu harus diberi spasi dengan titik dua dan memiliki AM / PM berikut (yaitu 3:47:36 PM)
  • Mungkin ditarik dari internet.
  • Mungkin waktu sistem.
  • Ini harus menampilkan segala bentuk output yang dapat diakses secara alami yang mendukung teks yang Anda pilih.
  • Output mungkin memiliki informasi tambahan selain waktu di dalamnya, tetapi Anda harus menjamin satu, dan hanya satu, output waktu per detik.
  • Output kontinu harus terpisah satu detik - jika Anda memilih untuk menunggu sampai perubahan kedua antara output, itu bagus. Jika Anda menunggu sebentar di antara setiap output, itu bisa diterima, meskipun akhirnya kehilangan keakuratan.

Karena ini adalah katalog, bahasa yang dibuat setelah tantangan ini diizinkan untuk bersaing. Perhatikan bahwa harus ada juru bahasa sehingga pengajuan dapat diuji. Diperbolehkan (dan bahkan dianjurkan) untuk menulis sendiri penerjemah ini untuk bahasa yang sebelumnya tidak diterapkan. Selain itu, semua aturan standar harus dipatuhi. Kiriman dalam kebanyakan bahasa akan dinilai dalam byte dalam pengkodean yang sudah ada sebelumnya (biasanya UTF-8).

Katalog

Cuplikan Stack di bagian bawah posting ini menghasilkan katalog dari jawaban a) sebagai daftar solusi terpendek per bahasa dan b) sebagai leaderboard keseluruhan.

Untuk memastikan bahwa jawaban Anda muncul, silakan mulai jawaban Anda dengan tajuk utama, menggunakan templat Penurunan harga berikut:

## Language Name, N bytes

di mana Nukuran kiriman Anda. Jika Anda meningkatkan skor Anda, Anda bisa menyimpan skor lama di headline, dengan mencoretnya. Misalnya:

## Ruby, <s>104</s> <s>101</s> 96 bytes

Jika Anda ingin memasukkan beberapa angka dalam tajuk Anda (mis. Karena skor Anda adalah jumlah dari dua file atau Anda ingin membuat daftar hukuman penterjemah secara terpisah), pastikan bahwa skor sebenarnya adalah angka terakhir di tajuk:

## Perl, 43 + 2 (-p flag) = 45 bytes

Anda juga dapat membuat nama bahasa menjadi tautan yang kemudian akan muncul di cuplikan:

## [><>](http://esolangs.org/wiki/Fish), 121 bytes


Apakah "sampai dibatalkan oleh interupsi" termasuk menutup program atau apakah perlu mekanisme untuk menghentikan siklus yang dikodekan ke dalamnya?
user81655


1
Peringatan: Semua sleep 1aturan jawaban 5 berdasarkan: Anda harus menjamin satu, dan hanya satu, keluaran waktu per detik. !!
F. Hauri

1
F. Hauri: Bagaimana bisa begitu? Aturan 6 mengatakan "Jika Anda menunggu sebentar di antara setiap output, itu juga baik."
YetiCGN

1
@ Yasen Tidak, tetapi arti "itu baik-baik saja" menyiratkan bahwa opsi menunggu masih berlaku, terlepas dari hilangnya waktu akhirnya. Saya telah mengklarifikasi ini untuk Anda.
Addison Crump

Jawaban:


56

Minecraft 1.8.7, 7 + 8 = 15 blytes (bytes + blocks)

Hanya satu blok perintah yang terlibat:

xp 1 @p

Output menuju ke konsol klien seperti:

waktu

Sebagai bagian dari output normal.

Ini sistemnya:

sistem

xpmemberikan jumlah pengalaman yang ditentukan untuk pemain tertentu dengan sintaks xp <amount> <player>. Saya cukup yakin ini adalah perintah terkecil yang memiliki output tunggal yang bisa saya dapatkan, sekarang.


3
Jangan katakan "19 byte" karena Anda tidak mengukur ukuran jawaban Anda dalam byte.
feersum

6
@feersum Ada alasan bagi saya untuk mengatakan byte, percayalah. Ini adalah hal yang paling dekat dengan konsensus untuk MC seperti yang sekarang.
Addison Crump

4
Anda dapat menggunakan kode angka yang sudah usang, bukan?
Conor O'Brien

4
Gunakan sistem penilaian ini jika Anda mau, 19 apa pun, tetapi bukan 19 byte, karena tidak ada pengkodean yang ditentukan sebelumnya yang memungkinkan Anda untuk menyimpan solusi ini dalam file 19-byte.
feersum

1
@ CᴏɴᴏʀO'Bʀɪᴇɴ saya harus membungkusnya dengan JSON, saya percaya. Kecuali saya menggunakan 1.6, tapi itu praktis bahasa lain.
Addison Crump

17

JavaScript, 32 byte

setInterval("alert(Date())",1e3)

Menggunakan fakta bahwa setInterval mengevaluasi kode. Ini tidak disarankan, tetapi kapan itu menjadi perhatian dalam kode golf?

Date() mengembalikan waktu dan tanggal saat ini dalam format seperti ini (dapat bervariasi per sistem).

 Wed Jul 28 1993 14:39:07 GMT-0600 (PDT)

Apakah akan setInterval(alert,1e3,Date())berhasil?
ETHproduk

@ ETHproductions Selalu menunjukkan waktu yang sama untuk saya
ev3commander

@ETHproduksi dalam contoh Anda Date()hanya akan dievaluasi satu kali ketika Anda membuat interval
MMM

15

sh (+ watch), 11 byte

Naskah:

watch -n1 .

(tidak ada baris baru)

Keluaran:

Every 1,0s: . (SPACES) Sat Nov 28 19:07:51 2015

Jumlah ruang tergantung pada lebar terminal.

Diuji pada Debian8 dan NetBSD7.


Alat yang tepat untuk pekerjaan itu, +1
Addison Crump

Tunggu, apakah ini dianggap sebagai bahasa pemrograman? Bisakah Anda memberi saya tautan ke juru bahasa?
Addison Crump

@VoteToClose watchadalah sebuah coreutil. Bahasa aslinya adalah bash / sh.
Gagang Pintu

Jadi ... bukankah ini seharusnya Bash (distribution), bukan watch? @Doorknob
Addison Crump

1
Hmm Anda harus menggunakan -psakelar untuk tidak melanggar aturan. Anda harus menjamin satu, dan hanya satu, keluaran waktu per detik. !!
F. Hauri

15

Jepret , 8 7 6 blok


(Ya, saya mengubahnya di MS Paint karena saya terlalu malas untuk membuat tangkapan layar lain. Jadi apa? Setidaknya itu bisa dibaca.)
Klik skrip untuk menjalankan
jam 24 jam.


2
Saya selalu suka bahasa pemrograman grafis. : D +1
Addison Crump

oh hei ev3! Saya tahu Anda dari forum Snap / Scratch: P mengapa Anda membutuhkan Snap, bukan Scratch?
anOKsquirrel

2
@anOKsquirrel Karena saya tidak perlu membuat sarang semua blok gabung itu.
ev3commander

Bukankah itu seharusnya dibaca 9:21:08?
Luke

@ Lukas Seperti yang ditunjukkan oleh jawaban TI-BASIC, waktu tanpa nol di awal output baik-baik saja. Itu bisa dibaca manusia dan jelas jam berapa sekarang.
Addison Crump

11

Python 2, 47 byte

from time import*
while[sleep(1)]:print ctime()

Tidak ada tautan daring karena ideone time out (huehuehue) sebelum mencetak apa pun.

Terima kasih kepada @xsot untuk while[sleep(1)]trik dan ctimetriknya.

Mencetak tanggal dan waktu saat ini seperti ini: Fri Nov 27 21:23:02 2015


2
Aku bertepuk tangan pelan di pun. Mego yang sangat lucu. ; D
Addison Crump

Saya telah memposting solusi Anda untuk Python 3
jfs

sleep 1berdasarkan aturan rehat 5: Anda harus menjamin satu, dan hanya satu, keluaran waktu per detik.
F. Hauri

@ F. Hauri sleep 1menyebabkan utas saat ini tidur tepat satu detik. Itu sesuai dengan aturan.
Mego

1
@ F. Hauri Menimbang bahwa sang pembuat tantangan sendiri menggunakan yang setara sleep(1)dalam kedua solusi AppleScript dan solusi Vashy + bash-nya , itu jelas dapat diterima.
Mego

9

Perl, Command Line, 24 byte

sleep(say)while$_=gmtime

Ini harus dijalankan dari baris perintah, karena perl -E'sleep(say)while$_=gmtime'(di windows, gunakan tanda kutip ganda sebagai gantinya). Tanggal akan dikeluarkan bersamaan dengan waktu, yang tampaknya diizinkan .


Perl, 25 byte

sleep print$/.gmtime;do$0

Dalam konteks skalar, gmtimeakan mengembalikan string yang mirip dengan Sat Nov 28 10:23:05 2015. Hasil dari print, selalu 1, digunakan sebagai parameter untuk sleep. do$0digunakan untuk mengeksekusi skrip lagi, setelah timer selesai.


2
Sebagaimana dibuktikan oleh solusi dan komentar AppleScript @ VoteToClose , Anda tidak perlu mengekstrak waktu.
Mego

1
Solusi 24-byte lain: {sleep say~~gmtime;redo}.
Denis Ibaev

sleep 1berdasarkan aturan rehat 5: Anda harus menjamin satu, dan hanya satu, keluaran waktu per detik .
F. Hauri

@ F. Hauri aturan ditambahkan setelah posting ini dibuat.
primo

9

Javascript ES6, 43 39 byte

setInterval(_=>console.log(Date()),1e3)

Bekerja dengan pengaturan waktu saya saat ini (yang belum berubah selama beberapa waktu, terima kasih), setidaknya.

4 byte disimpan oleh Conor O'Brien.


waspada lebih pendek?
Maltysen

8
@Maltysen Saya pikir di banyak browser Anda harus menutup satu jendela peringatan untuk melihat yang berikutnya.
flawr

@Maltysen Saya mencobanya, entah bagaimana mengacaukan intervalnya
SuperJedi224

1
Anda tidak perlu .toTimeString()di Chrome dan FF.
Bob

1
Saya pikir Anda dapat mengganti new Date()denganDate()
Conor O'Brien

8

Arcyóu , 27 byte

(@ t(pn(zz 1)(p(st %H:%M:%S

Saya harus menggabungkan dua fungsi baru untuk tantangan ini, zzdan st.

pn: Persis seperti Lisp progn.

zz: Tautan langsung ke Python time.sleep.

st: Tautan langsung ke Python time.strftime.

Biasanya, tanda kutip diperlukan di sekitar string format, tetapi karena tidak ada spasi, itu diurai sebagai simbol. Penerjemah mengevaluasi simbol yang tidak terdefinisi sebagai dirinya sendiri, jadi kami mendapatkan string.


1
Saya akan memilih, tetapi saya tidak memiliki suara lagi. +1; c Dan pembaruan yang bagus. : D
Addison Crump

7

Bash, 51 31 24 21 20 byte

Terima kasih kepada @quartata untuk beberapa komentar yang sangat membantu. Terima kasih @Dennis atas klarifikasi dan untuk memotong lebih banyak byte. Terima kasih @VoteToClose untuk mengklarifikasi aturan (yang ternyata saya buruk membaca) lebih lanjut mengurangi byte.

datemenampilkan tanggal lengkap dengan jam 24 jam. sleep 1tidur sebentar. exec $0loop skrip tanpa batas.

date;sleep 1;exec $0

Anda tidak membutuhkan shebang.
spaghetto

Juga, saya pikir Anda dapat mengganti truedengan mengembalikan sleep 1karena sleepa 1.
spaghetto

date +%T;sleep 1;exec $0sedikit lebih pendek. @quartata Nitpicking: sleepmemiliki kode keluar nol, itulah sebabnya whileterus.
Dennis

3
Oh, aku idiot
spaghetto

2
Anda tidak memerlukan ruang setelahnya date, jadi ini hanya 20 byte.
Gugatan IniBiruNggak

6

Menembus 98, 53 byte

 v
v>"EMIT"4(>H.8,':,M.8,':,S:.8,d,
>:S-    !!k^

Catatan:

  1. Program ini tidak mem-pad-pad angka yang dicetaknya.
  2. Program ini mencetak spasi dan kemudian karakter backspace setelah setiap angka, karena .perintah mencetak spasi implisit di akhir.
  3. Ukuran tumpukan dalam program ini bertambah setiap detik, dan dengan demikian akan kehabisan memori.
  4. Program ini akan menimpa waktu sebelumnya ketika mencetak yang baru. Untuk membuatnya mencetak setiap kali pada baris baru, ubah dpada baris pertama menjadia

Mengapa string "WAKTU" diperlukan? Apakah ada cara untuk meraihnya? (Saya tidak tahu tentang ini)
Addison Crump

The "EMIT"4(pada awal program ini mengatakan penafsir untuk memuat TIMEsidik jari, yang memungkinkan H, Mdan Spetunjuk. (Tidak, itu tidak mengeluarkan angka 4).
pppery

Itu luar biasa . Saya bahkan tidak pernah berpikir bahwa banyak esolang akan melakukan ini, +1.
Addison Crump

@VoteToClose Befunge 98 bahkan memiliki instruksi untuk menjalankan program arbritrary yang muncul dari stack.
pppery

1
Lari untuk mempelajari bahasa ini Permisi ...
Addison Crump

6

mIRC 7.49 20 16 Bytes

/timer 0 1 $time

Di mana kita bisa menguji ini?
Addison Crump

Anda harus mengunduh mIRC, itu adalah klien IRC shareware. Anda dapat mengunduhnya dari: mirc.com juga karena jawaban di atas menggunakan sayAnda harus terhubung ke server dan kemudian bergabung dengan saluran. bijak lain Anda akan menggunakan echobukan say. mIRC memiliki bahasa scripting sendiri mSL (bahasa scripting mIRC)
onkarjit

5

AutoHotkey, 50 byte

x::Send,% a!=A_Sec? A_Hour ":" A_Min ":" a:=A_Sec:

Catatan:

  1. Mengharuskan Anda memegang xuntuk output yang berkelanjutan.
  2. Lepaskan jari Anda dari xuntuk mengganggu dan mengakhiri output.
  3. Output dalam format 24 jam.

2
Anda bisa, untuk beberapa byte tambahan, memasukkannya ke dalam tooltip sehingga tidak mengharuskan pengguna untuk memegangnya x.
Michelfrancis Bustillos

5

C (di Linux x64), 179 177 175 168 159 byte

#include<time.h>
#include<sys/time.h>
main(){struct timeval a;char b[9];for(;;){gettimeofday(&a,0);strftime(b,9,"%T",localtime(&a.tv_sec));puts(b);sleep(1);}}

Tidak Disatukan:

#include <time.h>
#include <sys/time.h>
main(){
  struct timeval a;
  char b[9];
  for(;;){
    gettimeofday(&a, 0);
    strftime(b, 9, "%T",localtime(&a.tv_sec));
    puts(b);
    sleep(1);
  }
}

Hanya diuji, dan kemungkinan hanya berfungsi, linux x64 (x32 mungkin berfungsi, tetapi platform lain mungkin tidak).

Perbedaan utama antara program ini dan program C yang diposting lainnya adalah penggunaan panggilan fungsi linux-eksklusif, yang, sementara praktik yang mengerikan untuk perangkat lunak nyata, menyimpan beberapa byte ... jika Anda mengabaikan semua peringatan kompiler.


Selamat datang di PPCG! Kecuali saya salah, saya yakin Anda bisa menghapus ruang antara #includedan <...>. Juga, dapatkah Anda menggunakan 1e6bukan 1000000?
Addison Crump

@VoteToClose Anda benar tentang spasi di #includes. Itu tidak terlihat seperti usleep () menerima 1e6, meskipun - berdasarkan seberapa cepat ia mulai mengeluarkan stempel waktu, ia hanya menafsirkannya sebagai 1.
Gamerdog

¯ \ _ (ツ) _ / ¯ Saya juga tidak tahu C. Saya akan membiarkan para profesional pada saat itu. Selamat datang lagi, pilih suara. : D
Addison Crump

Ah, satu hal lagi - Anda tidak perlu memotong string hanya untuk waktu saja, jadi Anda bisa menampilkan seluruh waktu tanggal, asalkan memiliki string waktu yang diperlukan di dalamnya.
Addison Crump

2
Anda dapat menggunakan %Tsebagai format format di strftime.
Mego

5

Jolf , 14 8 7 byte

Dicoret 14 adalah 1? Tidak, itu tidak akan pernah menangkap;)

Coba di sini! Klik jalankan, jangan klik pada hal lain ^ _ ^ halaman ini sangat ... eksplosif. Iya. Memperbaiki sistem keluaran dengan pembaruan.

TaD#`~2

(Saya menambahkan beberapa konstanta, dan ~1untuk ~4menjadi kekuatan 10.)

Penjelasan

setInterval("alert(Date())",1000);
     T         a      D#   ` ~2

4
Seseorang harus membuat YAJSGV (Yet Another JavaScript Golfing Variant).
intrepidcoder

Ini sepertinya mencetak lebih banyak dari sekadar waktu.
Dennis

1
@ Dennis Saya berasumsi itu baik-baik saja sesuai solusi lain
Conor O'Brien

Buruk saya, saya hanya membaca jawaban Anda dan Bash.
Dennis

@Dennis Bukan masalah ^ _ ^
Conor O'Brien

5

Dyalog APL , 27 18 16 byte

':',¨⎕TS⋄→≢⎕DL 1

Cobalah online!

⎕TSYMD hmst
':',¨prepend: untuk setiap
pernyataan baru
⎕DL 1tunggu sebentar dan kembalikan waktu tunggu yang sebenarnya; 1.0sesuatu detik
menghitung waktu tunggu yang sebenarnya, memberikan 1
ke baris (1 = baris ini)


4

Perl 6 , 29 byte

Cara yang tepat untuk melakukan ini:

Supply.interval(1).tap: -> $ {
  say join ':',.hour,.minute,.whole-second given DateTime.now
}
await Promise.new; # halt this thread indefinitely
22:21:58
22:21:59
22:22:0
22:22:1
22:22:2
…

Versi golf

loop {sleep say join ':',now.polymod(1,60,60,24)[31]} # 56 bytes
3:59:26
3:59:27
3:59:28
3:59:29
…

Karena output tidak harus dibatasi hanya pada waktu, saya dapat membuatnya sedikit lebih pendek.

loop {sleep say DateTime.now} # 29 bytes
2015-11-27T22:18:10-06:00
2015-11-27T22:18:11-06:00
2015-11-27T22:18:12-06:00
2015-11-27T22:18:13-06:00
…

4

R, 38 byte

repeat{Sys.sleep(1);print(Sys.time())}

Ini menampilkan waktu saat ini dalam format berikut:

[1] "2015-11-28 07:34:01 CET"

4

Powershell, 19 byte

for(){date;sleep 1}

Seperti yang telah ditunjukkan bahwa output hanya perlu menyertakan jam: mm: dd Anda dapat mengurangi menjadifor(){date;sleep 1}
steve

4

PHP, 37 byte

<?=date('G:i:s');header('refresh:1');

Output waktu server yang diformat dan mengatur halaman untuk me-refresh setiap detik.

Tentu saja, itu tergantung pada koneksi internet Anda dan seberapa cepat repsonding server Anda :)

Demo


Tidak, tidak menyegarkan:Warning: Cannot modify header information - headers already sent
Martijn

@ Martijn Saya tidak tahu apa yang bisa Anda mainkan, karena itu bekerja untuk saya :)
nicael

Saya akan menghapus downvote sebagai manfaat dari keraguan, tetapi ini berfungsi tepat sekali untuk saya. Mencoba di dua server reguler yang berbeda.
Martijn

2
Tergantung pada apakah Anda memiliki buffering output dihidupkan.
Andrea

<?=header('refresh:1').date('G:i:s');harus bekerja dengan pengaturan penyangga keluaran.
Jasen

4

VBA, 69 Bytes

Mendapatkan Waktu itu mudah, now()Hanya mengeluarkan setiap 1 detik .... BANYAK lebih banyak kata.

Ini adalah cara "Benar" untuk menunggu 1 detik di VBA. 78 Bytes

Sub a():Debug.Print Now():Application.Wait Now()+TimeValue("0:0:1"):a:End Sub

Atau jika Anda ingin Potong beberapa Sudut dan hanya menjadi benar 86% dari waktu cukup baik 63 Bytes
menambahkan satu SigFig membawa Anda ke 95% akurat dan sepertiga akan membuat Anda menjadi 99,36%

Sub a():Debug.Print Now():Application.Wait Now()+1e-5:a:End Sub

Jika Anda ingin mendapatkan metode di atas hingga 100%, maka Anda memerlukan 69 Bytes (1/86400)

Sub a():Debug.Print Now():Application.Wait Now()+(1/86400):a:End Sub

Semua metode ini akan tersandung pada lompatan kedua karena mereka tidak menunggu selama 1 detik, tetapi tunggu sampai 1 detik. Pada tengah malam ketika jam kembali satu jam, jam ini akan berhenti selama 1 jam dan kemudian mengambil di mana ia pergi.

VBA memungkinkan Metode Tidur tetapi byte couter Anda Hancur. 97 Bytes

Declare Sub Sleep Lib "kernel32" (ByVal k as Long)
Sub a():Debug.Print Now():Sleep(1e3):a:End Sub

3

JavaScript, 47 38 35 byte

for(p=1;t=Date();p=t)t!=p&&alert(t)

Penjelasan

Terus memeriksa apakah waktu telah berubah maka alertjika sudah.

for(
  p=1;
  t=Date();
  p=t
)
  t!=p
    &&alert(t)

Anda tidak harus hanya mendapatkan string waktu. ; D Selama itu ada di suatu tempat.
Addison Crump

@VoteToTutup Oh benar!
user81655

Jangan berpikir Anda membutuhkan +"", karena tanpa new, Date()mengembalikan sebuah string.
ETHproduksi

@ ETHproductions Ah, ya itu dibiarkan di sana sejak saat digunakan new. Terima kasih telah menangkap itu!
user81655

3

AppleScript, 51 35 byte

ulangi
catat tanggal sekarang
keterlambatan 1
akhir

Cukup jelas. Mencetak tanggal saat ini, yang berisi waktu, menunda satu detik, lalu melanjutkan.


1
Jadi tunggu, apakah diperbolehkan untuk mencetak tanggal saat ini dan juga waktu?
spaghetto

@quartata Ya, rangkaian apa pun dengan waktu, selama waktu terus-menerus dikeluarkan dan dijamin sebagai keluaran, tidak masalah.
Addison Crump

menunda 1 melakukan apa? jeda selama 1000000000 ns?
Jasen

@ Yasen Itu benar.
Addison Crump


3

Dyalog APL, 36 byte

Tidak terlalu singkat kali ini.

{⎕←1↓∊'⊂:⊃,ZI2'⎕FMT 3↑3↓⎕TS⋄∇⎕DL 1}1

Ini menghasilkan waktu 24 jam, yaitu:

14:37:44
14:37:45
14:37:46
...

Penjelasan:

  • {... }1: mendefinisikan suatu fungsi dan memanggilnya (argumennya diabaikan, tetapi kita membutuhkan fungsi tersebut untuk menyebutnya secara rekursif)
    • ⎕TS: fungsi sistem yang mengembalikan tanggal dan waktu saat ini, dalam format tahun - bulan - hari - jam - menit - detik - milidetik . ( ⎕TS= t ime s tamp)
    • 3↑3↓: jatuhkan 3 item pertama (yaitu tahun - bulan - hari) dan kemudian ambil 3 item pertama yang tersisa (jam - menit - detik).
    • '⊂:⊃,ZI2'⎕FMT: memformat setiap angka sebagai bilangan bulat dua digit ( I2) dengan nol nol terkemuka ( Z), diawali dengan titik dua ( ⊂:⊃). (Ini menghasilkan matriks.)
    • : Dapatkan semua elemen dalam matriks, dalam urutan baris. (Ini memberikan vektor, dalam hal ini string.)
    • 1↓: jatuhkan karakter pertama (yang merupakan tambahan :)
    • ⎕←: output itu
    • ⎕DL 1: lalu tunggu satu detik ( ⎕DL= d e l ay)
    • : panggil fungsi secara rekursif

{⎕←1↓∊':',¨⍕¨3↑3↓⎕TS⋄∇⎕DL 1}1untuk 28 byte, sudah cukup sesuai OP .
Adem

Aturan baru memungkinkan hasil sampah dan ruang acak, sehingga Anda dapat membuang banyak hal.
Adám


3

Haskell, 98 96 85 byte

import GHC.Conc
import Data.Time
m@main=getCurrentTime>>=print>>threadDelay(10^6)>>m

Versi alternatif menggunakan do notation:

main = do
  time <- getCurrentTime
  print time
  threadDelay 1000000
  main

Dapatkan waktu saat ini dengan getCurrentTimedari Data.Timeperpustakaan, kemudian pipa itu ke print, menunggu 1.000.000 mikrodetik (1 detik) dan memanggil dirinya sendiri.

Terima kasih kepada nimi dan Mauris!


m@main=...>>mselalu lebih pendek darimain=...>>main
Lynn

Selain itu, karena threadDelaykhusus untuk GHC, Anda dapat mengimpornya dari GHC.Conc
Lynn

3

Gelombang - 34 40 byte

Saya suka variabel bawaan:

:A                    //Set label A
echo %time%           //Print the time in 24 hour format
timeout 1    //Wait 1 second (thanks DavidPostill)
goto A                //Jump back to A and repeat

Pasti ada beberapa sleepperintah dalam Batch dalam waktu dekat.


Tidak ada builtin tidur tetapi ada batas waktu . Anda dapat mengganti ping ...dengan timeout 1. Juga jam tidak terlalu akurat saat digunakan ping. Lebih baik dengan timeout;)
DavidPostill

@ Davidvid, terima kasih atas tipnya, saya tidak pernah tahu ada perintah seperti itu di Windows. :)
GiantTree

@GiantTree Terima kasih;)
DavidPostill

Golf: lepaskan :Adan ganti goto Adengan%0
stevefestl

3

Python 3, 99 Bytes

Permintaan maaf jika format kode aneh, melakukan ini dari ipad. (jangan tanya). Saya tahu kode ini besar mengingat beberapa jawaban lain, tetapi saya belum melihat satu pun python jadi saya ingin menambahkannya.

import time
import datetime
while(True):
 print(datetime.datetime.now().time())
 time.sleep(1)  

Anda dapat mengganti Truedengan 1, dan jika Anda menempatkan printdan sleepgaris-garis pada sama dengan while(dipisahkan dengan titik koma) menghemat spasi.
undergroundmonorail

@undergroundmonorail ok terima kasih atas tip Benar / 1. Saya tidak terbiasa dengan itu karena Java Dosent melakukan itu. Saya tidak tahu bahwa Python juga memiliki titik koma. Aku akan melihat ke dalam
Ashwin Gupta

3

Java, 300 166 137 125 124 byte

Hampir Lebih dari separuhnya berkat VoteToClose, Paülo Ebermann dan janschweizer!

interface A{static void main(String[]a)throws Exception{for(;;Thread.sleep(1000))System.out.println(new java.util.Date());}}

Tidak Disatukan:

interface A {
    static void main(String[] a) throws Exception {
        for (;; Thread.sleep(1000)) System.out.println(new java.util.Date());
    }
}

1
Sederhanakan impor Anda: java.util.*alih-alih dua java.utilimpor, java.text.*untuk alasan yang sama. Gunakan for(;;)untuk loop tak terbatas. Gunakan String[]adalam deklarasi utama. Gunakan interface A{static void main(..., karena ini akan mempersingkat lebih. Anda dapat menggunakan Exceptionlebih InterruptedException, dan Anda dapat menggantinya exdengan e. Anda juga dapat menghapus semua teks di dalam tangkapan, karena ini tidak melakukan apa-apa.
Addison Crump

1
Ya, hal antarmuka agak aneh - Saya tidak tahu mengapa Java membiarkan hal itu terjadi, mengingat bahwa antarmuka secara khusus dirancang untuk tidak dapat diperbaiki.
Addison Crump

1
Dua hal: Anda perlu mengubah string waktu menjadi "HH: mm: ss" - mulai sekarang, Anda memformat "Jam: Bulan: Kedua". Selain itu, karena Anda menggunakan loop, Anda dapat membuang deklarasi DateFormatdan Calendarvariabel secara bersamaan. Anda mengganti konten for for System.out.println(new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()));try{Thread.sleep(1000);}catch(Exception e){}.
Addison Crump

1
Semua hal yang saya sarankan, dibungkus:import java.util.*;import java.text.*;interface A{static void main(String[]a){for(;;){System.out.println(new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()));try{Thread.sleep(1000);}catch(Exception e){}}}}
Addison Crump

1
throws Exceptionlebih pendek dari coba / tangkap
fase

3

Perl, 99 81 75 51 40 36 29 27 byte

sleep(print gmtime.$/);do$0

1
Anda dapat mempersingkatnya dengan menggunakan gmtimealih-alih localtime.
Brad Gilbert b2gills

2
Jugaprintf"%02d:%02d:%02d\n",(gmtime)[2,1,0]
Brad Gilbert b2gills

1
gmtime."\n"akan memaksa konteks skalar.
Primo

1
Anda seharusnya hampir tidak perlu melakukannya ."\n"di golf: gunakan .$/untuk menghemat 2 byte. Paling tidak, gunakan baris literal bukan \nuntuk menghemat 1 byte.
ThisSuitIsBlackNot
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.