Geçerli Zaman Çıktısı


49

Meydan okuma

Şu andaki zamanı sürekli olarak (bir kesme ile iptal edilinceye kadar), saniyede bir kez aşağıdaki yollardan biriyle göndermelisiniz:

  • 24 saat ya da AM / PM formatında olmalıdır.
    • Eski ise, iki nokta üst üste yerleştirilmelidir (15:47:36).
    • İkincisi ise, iki nokta üst üste yerleştirilmeli ve AM / PM’yi izlemelidir (ör. 3:47:36 PM)
  • İnternetten çekilebilir.
  • Sistem zamanı olabilir.
  • Seçtiğiniz metni destekleyen, doğal olarak erişilebilir herhangi bir çıktı biçimini çıkarması gerekir.
  • Çıktı, içindeki zaman dışında bir ek bilgiye sahip olabilir, ancak saniyede bir ve yalnızca bir çıktı alınmasını garanti etmelisiniz .
  • Sürekli çıkış ikinci bir saniye olmalıdır - ikinci çıkışlar arasında değişene kadar beklemeyi tercih ederseniz, bu iyidir. Her çıktı arasında bir saniye beklerseniz, kesin doğruluk kaybına rağmen, bu tamamen kabul edilebilir.

Bu bir katalog olduğundan, bu mücadeleden sonra oluşturulan dillerin rekabet etmesine izin verilir. Göndermenin test edilebilmesi için bir tercüman olması gerektiğini unutmayın. Daha önce uygulanmamış bir dil için bu tercümanı kendiniz yazmanıza izin verilir (ve hatta teşvik edilir). Bunun dışında tüm standart kurallarına uyulmalıdır. Çoğu dilde yapılan gönderiler uygun bir önceden kodlanmış kodlamada (genellikle UTF-8) bayt olarak puanlanacaktır.

Katalog

Bu yazının altındaki Yığın Parçacığı, cevapları a) dil başına en kısa çözümün bir listesi olarak ve b) genel bir lider tablosu olarak oluşturur.

Cevabınızın göründüğünden emin olmak için, lütfen aşağıdaki Markdown şablonunu kullanarak cevabınızı bir başlık ile başlatın:

## Language Name, N bytes

Gönderinizin Nbüyüklüğü nerede ? Puanınızı artırmak varsa, olabilir onları içinden vurarak, başlığa eski hesapları tutmak. Örneğin:

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

Başlığınıza birden fazla sayı eklemek istiyorsanız (örneğin, puanınız iki dosyanın toplamı olduğundan veya tercüman bayrağı cezalarını ayrı ayrı listelemek istediğiniz için), gerçek puanın başlıktaki son sayı olduğundan emin olun :

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

Dil adını, daha sonra pasajda görünecek bir bağlantı da yapabilirsiniz:

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


"Bir kesinti ile iptal edilinceye kadar" programın kapatılmasını içeriyor mu veya programın içine kodlanmış çevrimi durdurmak için bir mekanizmaya mı ihtiyaç duyuyor?
user81655


1
Uyarı: Tüm sleep 1temel cevap sonu kuralı 5: saniyede bir ve yalnızca bir çıktı vermeniz gerektiğini garanti etmelisiniz. !!
F. Hauri

1
F. Hauri: Nasıl yani? Kural 6, "Her çıktı arasında bir saniye beklerseniz, sorun değil" diyor.
YetiCGN

1
@Jasen Hayır, ancak "iyi" nin anlamı, zaman kaybına bakılmaksızın, bekleme seçeneğinin hala geçerli olduğunu gösterir. Bunu senin için açıklığa kavuşturdum.
Addison Crump

Yanıtlar:


56

Minecraft 1.8.7, 7 + 8 = 15 blyte (bayt + blok)

Sadece bir komut bloğu dahil edildi:

xp 1 @p

Çıktı şöyle bir müşteri konsoluna gider:

zamanlar

Normal çıktının bir parçası olarak.

Bu sistem:

sistem

xpsözdizimi olan belirli bir oyuncuya belirtilen miktarda deneyim verir xp <amount> <player>. Bunun elde edebileceğim tekil çıktıya sahip en küçük emir olduğundan eminim.


3
"19 bayt" deme çünkü cevap ölçünüzü bayt cinsinden ölçmediniz.
feersum

6
@ feersum Bayt demem için bir neden var, güven bana. Bu, şu an için MC için fikir birliğine en yakın şey .
Addison Crump,

4
Kullanımdan kaldırılan sayı kodlarını kullanabilirsiniz, değil mi?
Conor O'Brien

4
İsterseniz bu puanlama sistemini kullanın, 19 ne olursa olsun, ancak 19 byte değil çünkü bu çözümü 19 bayt bir dosyada saklamanıza izin veren daha önce tanımlanmış bir kodlama yok.
feersum

1
@ C'O'Bʀɪᴇɴ JSON'a sarmak zorunda kalacağım, inanıyorum. 1.6 kullanmıyorsam, ama bu başka bir dil.
Addison Crump,

17

JavaScript, 32 bayt

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

SetInterval'in kodu değerlendirdiği gerçeğini kullanır . Bu önerilmez, ancak kod golf için bir endişe ne zamandı?

Date() şu anki saati ve tarihi buna benzer biçimde döndürür (sistem başına farklılık gösterebilir).

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

Onun setInterval(alert,1e3,Date())yerine işe yarar mı?
ETHProductions

@ETHproductions Her zaman benim için aynı zamanı gösteriyor
ev3 komutanı

Örnekteki @ETHroductions Date()aralığını oluşturduğunuzda yalnızca bir kez değerlendirilir
MMM

15

sh (+ izle), 11 bayt

Senaryo:

watch -n1 .

(takip eden yeni satır yok)

Çıktı:

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

Boşlukların miktarı terminal genişliğine bağlıdır.

Debian8 ve NetBSD7'de test edilmiştir.


İş için doğru alet, +1
Addison Crump

Bekle, bu bir programlama dili olarak sayılıyor mu? Bana bir tercümanla bağlantı kurar mısın?
Addison Crump,

@VoteToClose watchbir coreutil'dir. Gerçek dil bash / sh.
Doorknob

Yani ... bu olmamalı Bash (distribution), değil watchmi? @Doorknob
Addison Crump,

1
Hmm -pKuralın ihlal edilmemesi için anahtar kullanmanız gerekir, saniye başına bir ve yalnızca bir çıktı vermeniz gerekir. !!
F. Hauri

15

Snap , 8 7 6 blok


(Evet, MS Paint'te değiştirdim, çünkü başka bir ekran görüntüsü oluşturmak için çok tembeldim. Peki ya? En azından okunabilir.) 24-saat
çalışacak komut dosyasını tıklayın
.


2
Her zaman grafiksel programlama dillerini seviyorum. : D + 1
Addison Crump,

oh hey ev3! Seni Snap / Scratch forumlarından tanırım: P neden Scratch yerine Snap'a ihtiyacın var?
anOKsquirrel

2
@ anOKsquirrel Çünkü tüm bu birleşme bloklarını yerleştirmem gerekmiyor.
ev3 komutanı

Bu okumalı 9:21:08mıydı?
Luke

@Luke TI-BASIC cevabı ile gösterildiği gibi, bir çıktıda baştaki sıfır olmadan geçen süre iyi. İnsan okunabilir ve zamanın ne olduğu net.
Addison Crump,

11

Python 2, 47 bayt

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

Çevrimiçi bağlantı yok, çünkü ideone bir şeyi yazdırmadan önce zaman aşımına uğradı (huehuehue).

while[sleep(1)]Hile ve numara için @ xsot'a teşekkürler ctime.

Geçerli tarih ve saati şöyle yazdırır: Fri Nov 27 21:23:02 2015


2
Beni yavaş yavaş alkışlıyor. Çok komik Mego. ; D
Addison Crump,


sleep 1temelli cevap kırma kuralı 5: saniyede bir kez ve bir tane çıktı
F. Hauri

@ F.Hauri sleep 1geçerli iş parçacığının bir saniye boyunca uykuya başlamasına neden olur. Kurallara uygundur.
Mego

1
@ F.Hauri Yarışma sahibinin kendisinin sleep(1)hem AppleScript çözümünde hem de Vitsy + bash çözümünde eşdeğerini kullandığı göz önüne alındığında, açıkça kabul edilebilir.
Mego

9

Perl, Komut Satırı, 24 bayt

sleep(say)while$_=gmtime

Bu, komut satırından çalıştırılmalıdır perl -E'sleep(say)while$_=gmtime'(Windows'da bunun yerine çift tırnak işareti kullanın). Tarih, izin verildiği anlaşılan saatle birlikte verilir .


Perl, 25 bayt

sleep print$/.gmtime;do$0

Skaler bağlamda, gmtimebenzer bir dize döndürür Sat Nov 28 10:23:05 2015. Her printzaman 1 olan sonuç , parametresi olarak kullanılır sleep. do$0Zamanlayıcı bittikten sonra betiği tekrar çalıştırmak için kullanılır.


2
@ VoteToClose'un AppleScript çözümü ve yorumu ile kanıtlandığı gibi , zaman ayırmanız gerekmez.
Mego

1
Diğer 24-bit çözeltisi: {sleep say~~gmtime;redo}.
Denis Ibaev

sleep 1temelli cevap kırma kuralı 5: saniyede bir kez ve bir tane çıktı vermeyi garanti etmelisiniz .
F. Hauri

@ F.Hauri bu yazı yapıldıktan sonra kural eklendi.
primo

9

Javascript ES6, 43 39 bayt

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

En azından şimdiki zaman ayarları ile çalışır (bir süredir değiştirilmemiş, teşekkür ederim).

Conor O'Brien tarafından kaydedilen 4 bayt.


uyarısı kısa mı?
Maltysen

8
@Maltysen Birçok tarayıcıda bir sonrakini görmek için bir uyarı penceresini kapatmanız gerektiğini düşünüyorum.
kusur

@Maltysen Denedim, bir şekilde aralıkları
bozuyor

1
.toTimeString()Chrome ve FF’de ihtiyacınız yok .
Bob

1
Ben değiştirmek düşünüyorum new Date()ileDate()
Conor O'Brien

8

Arcyóu , 27 bayt

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

Bu meydan okuma için iki yeni işlevler birlikte kludge zorunda kaldı zzve st.

pn: Aynen Lisp'inki gibi progn.

zz: Python's'a doğrudan bağlantı time.sleep.

st: Python's'a doğrudan bağlantı time.strftime.

Normal olarak, biçim dizgisinde tırnak işaretleri gerekir, ancak boşluk olmadığı için bir simge olarak ayrıştırılır. Tercüman tanımsız sembolleri kendileri olarak değerlendirir, bu yüzden bir dizge alırız.


1
Oy kullanırdım, fakat oy hakkım kalmadı. +1; c Ve güzel güncellemeler. : D
Addison Crump

7

Bash, 51 31 24 21 20 bayt

Bazı çok yararlı yorumlar için @quartata teşekkürler. Açıklamalar ve daha fazla bayt kesmek için @Dennis teşekkür ederiz. Teşekkür ederim @VoteToClose (açıkçası ben okuma konusunda kötüyüm) kuralları netleştirmek için bayt daha da azaltarak.

date24 saatlik bir saatle tam tarihi görüntüler. sleep 1bir saniye uyur. exec $0betiği sonsuz döndürür.

date;sleep 1;exec $0

Shebang'a ihtiyacınız yok.
Bir spaghetto

Ayrıca, bence trueo sleep 1zamandan beri sleepdönen ile değiştirebilirsin 1.
Bir spaghetto

date +%T;sleep 1;exec $0biraz daha kısa. @quartata Nitpicking: sleepçıkış kodunu sıfırladı , bu yüzden whiledevam ediyor.
Dennis,

3
Oh aptal olduğumu
Bir Spaghetto

2
Sonra boşluğa ihtiyacınız yok date, bu sadece 20 bayttır.
KıyafetSiyahBeğen

6

Befunge 98, 53 bayt

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

Notlar:

  1. Bu program, yazdırdığı sayıları sıfırlamaz.
  2. Bu program bir boşluk ve ardından her sayının ardından bir geri alma karakteri .basar , çünkü komut sonunda gizli bir alan yazdırır.
  3. Bu programdaki yığının boyutu her saniye büyür ve bu nedenle sonunda bellek tükenir.
  4. Bu program, yenisini yazdırdığında önceki zamanın üzerine yazacaktır. Her seferinde yeni bir satıra yazdırmak diçin, ilk satırına

"TIME" dizgisi neden gerekli? Onu kapmanın bir yolu var mı? (Bunu bilmiyordum)
Addison Crump

"EMIT"4(Programın başında yüklemek için tercüman anlatıyor TIMEsağlayan parmak izi, H, M, ve Stalimatları. (Hayır, 4 sayısını vermez).
pppery

Bu harika . Asla pek çok esanoğlunun bunu yapacağını hiç düşünmedim, +1.
Addison Crump,

@VoteToClose Befunge 98'in yığından atılan isteğe bağlı bir programı yürütmek için bile bir talimatı vardır.
pppery

1
bu dili öğrenmek için kaçıyor Afedersiniz ...
Addison Crump

6

mIRC 7.49 20 16 Bayt

/timer 0 1 $time

Bunu nerede test edebiliriz?
Addison Crump

Bu bir shareware IRC istemcisi mIRC indirmek zorunda. Ayrıca, mirc.com adresinden indirebilirsiniz. Yukarıdaki cevap saysizi kullandığı için bir sunucuya bağlanmanız ve ardından bir kanala katılmanız gerekir. echoyerine kullanacağınız diğer bilge say. mIRC kendine ait bir betik dili vardır mSL (mIRC betik dili)
Do0msDay

5

AutoHotkey, 50 bayt

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

Notlar:

  1. xSürekli çıkış için tutmanızı gerektirir .
  2. xÇıkışı kesmek ve bitirmek için parmağınızı çıkarın .
  3. Çıktı 24 saat formatındadır.

2
Birkaç ekstra bayt için bunu bir araç ipucuna koyabilirsiniz, böylece kullanıcının beklemesi gerekmez x.
Michelfrancis Bustillos

5

C (Linux x64'te), 179 177 175 168 159 bayt

#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);}}

Ungolfed:

#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);
  }
}

Yalnızca Linux üzerinde test edildi ve muhtemelen çalışıyorsa, linux x64 (x32 çalışabilir, ancak diğer platformlar muhtemelen çalışmayabilir).

Bu program ile yayınlanan diğer C programı arasındaki temel fark, gerçek yazılım için korkunç bir uygulama olmasına rağmen, tüm derleyici uyarılarını göz ardı ederseniz, oldukça az sayıda bayt tasarrufu sağlayan linux-exclusive işlev çağrılarının kullanılmasıdır.


PPCG'ye Hoşgeldiniz! Yanılmıyorsam, #includeve arasındaki boşluğu kaldırabileceğine inanıyorum <...>. Ayrıca, 1e6yerine kullanabilirsiniz 1000000?
Addison Crump,

@VoteToClose #includes ' deki boşluklarda haklıydınız . Bu usleep gibi görünmüyor () olsa da, 1E6 kabul - bu zaman damgalarını saçıyor başlar ne kadar hızlı sadece 1. gibi yorumlayan dayalı
Gamerdog

¯ \ _ (ツ) _ / ¯ Ben de C'yi tanımıyorum. Bu konuda profesyonellere izin vereceğim. Tekrar hoşgeldiniz, bir oy verin. : D
Addison Crump,

Ah, başka bir şey - dizeyi sadece bir süre kesmek zorunda değilsiniz, böylece gerekli zaman çizelgesine sahip olması kaydıyla, tarih tarihinin tamamını çıkartabilirsiniz.
Addison Crump,

2
%TFormatı olarak kullanabilirsiniz strftime.
Mego

5

Jolf , 14 8 7 bayt

14 çarpı atıldı 1 mi? Hayır, asla yetişmeyecek;)

Burada dene! Çalıştır'ı tıklatın, başka bir şeye tıklamayın ^ _ ^ sayfa oldukça patlayıcı. Evet. Güncelleştirilmiş sabit çıkış sistemi.

TaD#`~2

(Ben ve bazı sabitleri eklendi ~1için ~4yetkileri şunlardır 10.)

açıklama

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

4
Birisi YAJSGV (Bir Başka JavaScript Golf Varyantı) yaratmalıdır.
intrepidcoder

Bu sadece zamandan çok daha fazla baskı gibi görünüyor.
Dennis,


Benim hatam, sadece seninkini ve Bash'in cevabını okudum.
Dennis,

@Dennis Sorun değil ^ _ ^
Conor O'Brien

5

Dyalog APL , 27 18 16 bayt

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

Çevrimiçi deneyin!

⎕TSYMD hmst hazırla
':',¨: her
yeni ifadeye
⎕DL 1bir saniye bekleyin ve gerçek bekleme süresini döndürün ; 1.0 saniye
içinde gerçek bekleme süresi taksitli, 1
hatta 1 (1 = bu satır)


4

Perl 6 , 29 bayt

Bunu yapmanın doğru yolu:

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
…

Golf versiyonu

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
…

Çıktının sadece zamanla sınırlandırılması gerekmediğinden, onu biraz daha kısa hale getirebilirim.

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 bayt

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

Bu, şu anki zamanı aşağıdaki biçimde verir:

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

4

Powershell, 19 bayt

for(){date;sleep 1}

O zamandan beri, çıktının yalnızca ss: mm: ss değerlerini içermesi gerektiğine dikkat for(){date;sleep 1}
steve

4

PHP, 37 bayt

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

Biçimlendirilmiş sunucu saatini çıkarır ve sayfayı her saniye yenileyecek şekilde ayarlar.

Tabii ki, internet bağlantınıza ve sunucunuzun ne kadar hızlı yanıt verdiğine bağlı :)

gösteri


Hayır, canlandırıcı yok:Warning: Cannot modify header information - headers already sent
Martijn

@Martijn Neyle uğraşabileceğin hakkında hiçbir fikrim yok, çünkü benim için çalışıyor :)
nicael

Şüphenin yararı olarak aşağı oyu kaldıracağım, ancak bu benim için tam olarak bir kez işe yarıyor. İki farklı normal sunucuda denendi.
Martijn

2
Çıktı tamponlamanın açık olup olmamasına göre değişir.
Andrea

<?=header('refresh:1').date('G:i:s');Her iki çıktı bffering ayarıyla çalışmalıdır.
Jasen

4

VBA, 69 Bayt

Zamanın gelmesi kolaydır, now()Sadece her 1 saniyede bir çıktısı alın… ÇOK daha ayrıntılı.

Bu, VBA'da 1 saniye beklemenin "Doğru" yoludur. 78 Bayt

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

Ya da bazı Köşeleri Kesmek İstiyorsanız ve Zamanın Yalnızca% 86'sı Yeterince İyi Olur 63 63 Bir Bayt
ekleyen bir SigFig sizi% 95 kesinliğe götürür ve üçüncüsü% 99,36'ya ulaştıracak

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

Yukarıdaki yöntemi% 100’e getirmek istiyorsanız, 69 Bayta ihtiyacınız var. (1/86400)

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

Bu yöntemlerin tümü bir saniye sıçradı. Çünkü, 1 saniye beklemiyorlardı, ama 1 saniye bekleyin. Saatlerin bir saat geri düştüğü gece yarısında bu saat 1 saat boyunca durur ve sonra kaldığı yerden devam eder.

VBA, Uyku Yöntemi'ne izin veriyor ancak bayt bilgisayarınız mahvoldu. 97 Bayt

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

3

JavaScript, 47 38 35 bayt

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

açıklama

Sürenin değişip değişmediğini sürekli olarak kontrol eder, eğer öyleyse alerts.

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

Sadece zaman dizesini almak zorunda değilsin. ; D Orada bir yerlerde olduğu sürece.
Addison Crump,

@VoteToClose Oh true!
user81655 0

İhtiyacınız düşünmeyin +""olmadan olarak, new, Date()bir dize döndürür.
ETHProductions 28:15

@ETHproductions Ah, evet, kullanıldığı zamandan beri orada kaldı new. Onu yakaladığın için teşekkürler!
user81655

3

AppleScript, 51 35 bayt

tekrar et
geçerli tarihi günlüğe kaydet
gecikme 1
son

Oldukça dang bariz. Saati içeren geçerli tarihi yazdırır, bir saniyeyi geciktirir, ardından devam eder.


1
Öyleyse bekle, saatin yanı sıra geçerli tarihi de yazdırabilir mi?
bir

@quartata Evet, zaman sürekli olarak çıktığı ve çıktı garantili olduğu sürece zamanla herhangi bir birleşme iyidir.
Addison Crump,

Gecikme 1 ne yapar? 1000000000 ns için duraklatma?
Jasen

@Jasen Bu doğru.
Addison Crump,


3

Dyalog APL, 36 bayt

Bu sefer çok kısa değil.

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

Bu, 24 saatlik bir zaman verir, yani:

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

Açıklama:

  • {... }1: bir işlev tanımlayın ve çağırın (argüman yoksayılır, ancak yinelemeli olarak çağırmak için işleve ihtiyacımız var)
    • ⎕TS: yıl - ay - gün - saat - dakika - saniye - milisaniye biçiminde geçerli tarih ve saati döndüren bir sistem işlevi . ( ⎕TS= t im s tamp)
    • 3↑3↓: ilk 3 maddeyi bırakın (örneğin yıl - ay - gün) ve sonra kalan ilk 3 maddeyi alın (saat - dakika - saniye).
    • '⊂:⊃,ZI2'⎕FMT: her sayıyı iki noktadan oluşan bir tamsayı ( I2) ile önce gelen (0 Z) (önce iki nokta üst üste ( ⊂:⊃) ) gelecek şekilde sıfırlayın . (Bu bir matrisle sonuçlanır.)
    • : Matristeki tüm öğeleri sıraya göre al. (Bu bir vektör verir, bu durumda bir dize.)
    • 1↓: ilk karakteri bırak (ki bu fazladan :)
    • ⎕←: çıktı
    • ⎕DL 1: Daha sonra bir ikinci (bekle ⎕DL= d , e l ay)
    • : fonksiyonu tekrarlı olarak çağırın

{⎕←1↓∊':',¨⍕¨3↑3↓⎕TS⋄∇⎕DL 1}128 bayt için, yeterli OP göre .
15’te

Yeni kurallar, çöp çıktısına ve rastgele alanlara izin verir, böylece çok şeyden kurtulabilirsiniz.
Adám


3

Haskell, 98 96 85 bayt

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

Alternatif sürüm kullanarak gösterim yapma:

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

İle şimdiki zaman alır getCurrentTimegelen Data.Timekütüphane, daha sonra boru bu içine print, 1.000.000 mikrosaniye (1 saniye) bekler ve çağırır.

Nimi ve Mauris'e teşekkürler!


m@main=...>>mher zaman olduğundan daha kısadırmain=...>>main
Lynn

Ayrıca, threadDelayyine de GHC'ye özgü olduğu için GHC.Conc
Lynn

3

Toplu iş - 34 40 bayt

Yerleşik değişkenleri seviyorum:

: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

sleepYakında Batch'ta kesinlikle bir emir olması gerekiyor .


Yerleşik uyku yok ama zaman aşımı var . Sen yerini alabilir ping ...ile timeout 1. Ayrıca, saat kullanırken çok doğru değil ping. Ile daha iyi timeout;)
DavidPostill

@DavidPostill bahşiş için teşekkürler, Windows'ta böyle bir komut olduğunu asla bilmiyordum. :)
GiantTree

@GiantTree Çok açığız;)
DavidPostill

Golf: kaldırmak :Ave yerine goto Abirlikte%0
stevefestl

3

Python 3, 99 Bayt

Kodu tuhaf bir biçimde biçimlendirdiği için özür dileriz, bunu bir ipad'den yapın. (sorma). Bu kodun diğer cevaplardan bazıları dikkate alındığında büyük olduğunu biliyorum, fakat henüz bir python görmedim, bu yüzden eklemek istedim.

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

Sen yerini alabilir Trueile 1ve koyarsanız printve sleepaynı satırda satırları whilenoktalı virgülle (ayrılmış) size boşluk kaydeder.
undergroundmonorail

@ undergroundmonorail Tamam True / 1 ipucu için teşekkürler. Java Dosent bunu yaptığından beri buna alışkın değilim. Python'un da noktalı virgül olduğunu bilmiyordum. Buna göz
atacağım

3

Java, 300 166 137 125 124 bayt

VoteToClose, Paülo Ebermann ve janschweizer sayesinde neredeyse yarı yarıya fazlası!

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

Ungolfed:

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

1
İthalatlarınızı basitleştirin: java.util.*iki yerine java.utilithalatı, java.text.*aynı muhakeme için. for(;;)Sonsuz döngüler için kullanın . String[]aAna bildirimde kullanın . Kullanın interface A{static void main(..., bu daha da kısaltacaktır. Sen kullanabilirsiniz Exceptionüzerinde InterruptedExceptionve yerini alabilir exile e. Yine de hiçbir şey yapmadığından, mandalın içindeki tüm metni de kaldırabilirsiniz.
Addison Crump,

1
Evet, arayüz şey biraz kaçık - Java o arayüzleri olduğunu göz önünde bulundurarak, bir şey olmasına izin neden hiçbir fikrim yok özel olarak tasarlanmış unrunnable olmak.
Addison Crump,

1
İki şey: zaman dizesini "HH: mm: ss" olarak değiştirmelisiniz - şimdiden itibaren, "Saat: Ay: İkinci" biçimini değiştiriyorsunuz. Ayrıca, bir döngü kullandığınız için, birlikte DateFormatve Calendardeğişken bildirimlerinden kurtulabilirsiniz . For döngüsünün içeriğini ile değiştirirsiniz System.out.println(new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()));try{Thread.sleep(1000);}catch(Exception e){}.
Addison Crump

1
Az önce önerdiğim her şey, tamamlandı: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 Exceptionbir deneme / yakalama kısadır
faz

3

Perl, 99 81 75 51 40 36 29 27 bayt

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

1
Bunun gmtimeyerine kullanarak kısaltabilirsiniz localtime.
Brad Gilbert, 28:15

2
Ayrıcaprintf"%02d:%02d:%02d\n",(gmtime)[2,1,0]
Brad Gilbert,

1
gmtime."\n"skaler bir bağlamı zorlar.
primo

1
Neredeyse hiç ."\n"golf oynamanız gerekmiyor : .$/2 bayttan tasarruf etmek için kullanın . En azından \n1 bayt kaydetmek yerine yeni bir satırsonu kullanın .
ThisSuitIsBlackNot
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.