ส่งออกเวลาปัจจุบัน


49

ท้าทาย

คุณต้องส่งออกเวลาปัจจุบันอย่างต่อเนื่อง (จนกระทั่งถูกยกเลิกโดยการขัดจังหวะ) ทุก ๆ วินาทีด้วยวิธีใดวิธีหนึ่งต่อไปนี้:

  • ต้องอยู่ในรูปแบบ 24 ชั่วโมงหรือ AM / PM
    • หากเป็นอดีตจะต้องเว้นระยะด้วยโคลอน (เช่น 15:47:36)
    • ถ้าเป็นหลังจะต้องเว้นวรรคด้วยโคลอนและตามด้วย AM / PM ต่อไป (เช่น 3:47:36 PM)
  • มันอาจถูกดึงออกมาจากอินเทอร์เน็ต
  • อาจเป็นเวลาระบบ
  • จะต้องส่งออกรูปแบบการส่งออกใด ๆ ที่เป็นธรรมชาติที่รองรับข้อความที่คุณเลือก
  • เอาต์พุตอาจมีข้อมูลเพิ่มเติมนอกเหนือเวลา แต่คุณต้องรับประกันหนึ่งและมีเพียงหนึ่งเอาต์พุตเวลาต่อวินาที
  • เอาต์พุตต่อเนื่องจะต้องอยู่ห่างกันเป็นวินาที - หากคุณเลือกที่จะรอจนกระทั่งการเปลี่ยนแปลงครั้งที่สองระหว่างเอาท์พุทนั่นเป็นเรื่องปกติ หากคุณรอสักครู่ระหว่างแต่ละเอาต์พุตนั่นก็เป็นที่ยอมรับได้อย่างสมบูรณ์แม้จะมีการสูญเสียความแม่นยำในที่สุด

เนื่องจากนี่คือแคตตาล็อกภาษาที่สร้างขึ้นหลังจากความท้าทายนี้ได้รับอนุญาตให้แข่งขัน โปรดทราบว่าจะต้องมีล่ามเพื่อให้สามารถส่งการทดสอบได้ ได้รับอนุญาต (และสนับสนุนให้) เขียนล่ามนี้ด้วยตัวคุณเองสำหรับภาษาที่ยังไม่ได้ใช้งานมาก่อน นอกจากนั้นต้องปฏิบัติตามกฎมาตรฐานทั้งหมดของการส่งในภาษาส่วนใหญ่จะได้คะแนนเป็นไบต์ในการเข้ารหัสที่มีมาก่อน (ปกติคือ UTF-8)

แค็ตตาล็อก

สแต็คส่วนย่อยที่ด้านล่างของโพสต์นี้สร้างแคตตาล็อกจากคำตอบ a) เป็นรายการคำตอบสั้นที่สุดต่อภาษาและ b) เป็นลีดเดอร์บอร์ดโดยรวม

เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต Markdown ต่อไปนี้:

## Language Name, N bytes

ที่Nมีขนาดของส่งของคุณ หากคุณปรับปรุงคะแนนของคุณคุณสามารถเก็บคะแนนเก่าไว้ในบรรทัดแรกโดยการตีพวกเขาผ่าน ตัวอย่างเช่น

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

หากคุณต้องการรวมหลายตัวเลขไว้ในส่วนหัวของคุณ (เช่นเนื่องจากคะแนนของคุณคือผลรวมของไฟล์สองไฟล์หรือคุณต้องการแสดงรายการบทลงโทษการตั้งค่าสถานะของล่ามแยกต่างหาก) ตรวจสอบให้แน่ใจว่าคะแนนจริงเป็นตัวเลขสุดท้ายในส่วนหัว:

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

คุณยังสามารถตั้งชื่อภาษาให้เป็นลิงค์ซึ่งจะปรากฏในตัวอย่างข้อมูล:

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


"จนกว่าจะถูกยกเลิกโดยการขัดจังหวะหรือไม่" รวมถึงการปิดโปรแกรมหรือจำเป็นต้องมีกลไกในการหยุดวงจรที่เข้ารหัสไว้หรือไม่
user81655


1
คำเตือน:ทั้งหมดsleep 1ตามคำตอบแบ่งการปกครองที่ 5: คุณต้องรับประกันหนึ่งและเพียงหนึ่งการส่งออกของเวลาต่อวินาที !!
F. Hauri

1
F. Hauri: เป็นไง กฎข้อที่ 6 บอกว่า "ถ้าคุณรอวินาทีระหว่างแต่ละเอาท์พุทนั่นก็ใช้ได้เช่นกัน"
YetiCGN

1
@ Jasen ไม่ แต่ความหมายของ "นั่นก็ดี" ก็หมายความว่าตัวเลือกการรอยังคงใช้ได้โดยไม่คำนึงถึงการสูญเสียเวลาในที่สุด ฉันได้อธิบายสิ่งนี้ให้คุณแล้ว
Addison Crump

คำตอบ:


56

Minecraft 1.8.7, 7 + 8 = 15 blytes (ไบต์ + บล็อก)

บล็อกคำสั่งเดียวที่เกี่ยวข้อง:

xp 1 @p

เอาต์พุตไปที่คอนโซลไคลเอ็นต์เช่น:

ครั้ง

เป็นส่วนหนึ่งของเอาท์พุทปกติ

นี่คือระบบ:

ระบบ

xpxp <amount> <player>จะช่วยให้จำนวนเงินที่ระบุของประสบการณ์ในการเป็นผู้เล่นที่ระบุไว้กับไวยากรณ์ ฉันค่อนข้างแน่ใจว่านี่เป็นคำสั่งที่เล็กที่สุดที่มีเอาต์พุตเอกพจน์ที่ฉันสามารถหาได้ตอนนี้


3
อย่าพูดว่า "19 ไบต์" เพราะคุณไม่ได้วัดขนาดคำตอบเป็นไบต์
feersum

6
@feersum มีเหตุผลสำหรับฉันที่บอกว่า bytes, เชื่อฉันเถอะ นี่เป็นสิ่งที่ใกล้เคียงกับฉันทามติของ MC มากที่สุดในตอนนี้
Addison Crump

4
คุณสามารถใช้รหัสตัวเลขที่เลิกใช้แล้วใช่ไหม
Conor O'Brien

4
ใช้ระบบการให้คะแนนนี้หากคุณต้องการผู้ใช้ 19 คน แต่ไม่ใช่ 19 ไบต์เพราะไม่มีการเข้ารหัสที่กำหนดไว้ก่อนหน้านี้ที่ช่วยให้คุณเก็บโซลูชันนี้ในไฟล์ขนาด 19 ไบต์
feersum

1
@ CᴏɴᴏʀO'Bʀɪᴇɴฉันต้องห่อมันไว้ใน JSON ฉันเชื่อ นอกจากว่าฉันจะใช้ 1.6 แต่นั่นเป็นอีกภาษาหนึ่ง
Addison Crump

17

JavaScript ขนาด 32 ไบต์

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

ใช้ความจริงที่setIntervalประเมินโค้ด นี้ไม่แนะนำ แต่เมื่อใดที่มีความกังวลในรหัสกอล์ฟ?

Date() ส่งคืนเวลาและวันที่ปัจจุบันในรูปแบบเช่นนี้ (อาจแตกต่างกันไปตามระบบ)

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

จะsetInterval(alert,1e3,Date())ทำงานแทนไหม
ETHproductions

@ETHproductions มันแสดงเวลาเดียวกันเสมอสำหรับฉัน
ev3commander

@ETHproductions ในตัวอย่างของคุณDate()จะถูกประเมินเพียงครั้งเดียวเมื่อคุณสร้างช่วงเวลา
MMM

15

sh (+ watch) 11 ไบต์

สคริปต์:

watch -n1 .

(ไม่ขึ้นบรรทัดใหม่)

เอาท์พุท:

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

จำนวนช่องว่างขึ้นอยู่กับความกว้างของเทอร์มินัล

ทดสอบบน Debian8 และ NetBSD7


เครื่องมือที่เหมาะสมสำหรับงาน +1
Addison Crump

เดี๋ยวก่อนนับเป็นภาษาการเขียนโปรแกรมหรือไม่? คุณสามารถให้ลิงค์ไปยังล่ามให้ฉันได้หรือไม่?
Addison Crump

@VoteToClose watchเป็น coreutil ภาษาจริงคือ bash / sh
Doorknob

ดังนั้น ... ไม่ควรนี้จะBash (distribution)ไม่watch? @Doorknob
Addison Crump

1
อืมคุณต้องใช้-pสวิตช์เพื่อไม่ทำลายกฎที่คุณต้องรับประกันหนึ่งและมีเพียงหนึ่งเอาท์พุทของเวลาต่อวินาที !!
F. Hauri

15

Snap , 8 7 6 บล็อก


(ใช่ฉันเปลี่ยนเป็น MS Paint เพราะฉันขี้เกียจเกินกว่าที่จะสร้างภาพหน้าจออื่นได้แล้วอย่างน้อยก็อ่านได้)
คลิกที่สคริปต์เพื่อเรียกใช้
นาฬิกา 24 ชั่วโมง


2
ฉันรักภาษาการเขียนโปรแกรมกราฟิกเสมอ : D +1
Addison Crump

โอ้เฮ้ ev3! ฉันรู้จักคุณจากฟอรัม Snap / Scratch: P ทำไมคุณถึงต้องการ Snap แทน Scratch ใช่ไหม?
anOKsquirrel

2
@anOKsquirrel เพราะฉันไม่จำเป็นต้องซ้อนบล็อกทั้งหมดที่เข้าร่วม
ev3commander

ไม่ควรอ่านได้ว่า9:21:08?
ลุค

@Luke ดังที่แสดงโดยคำตอบของ TI-BASIC เวลาที่ไม่มีศูนย์นำหน้าในเอาต์พุตนั้นใช้ได้ มันเป็นมนุษย์อ่านได้และชัดเจนว่าเวลาคืออะไร
Addison Crump

11

Python 2, 47 ไบต์

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

ไม่มีลิงก์ออนไลน์เพราะ ideone หมดเวลา (huehuehue) ก่อนที่จะพิมพ์อะไร

ขอบคุณ @xsot สำหรับwhile[sleep(1)]เคล็ดลับและctimeเคล็ดลับ

พิมพ์วันที่และเวลาปัจจุบันดังนี้: Fri Nov 27 21:23:02 2015


2
/ ฉันตบเบา ๆ ที่ปุน Mego ตลกมาก ; D
Addison Crump


sleep 1กฎการแบ่งคำตอบตาม 5: คุณต้องรับประกันหนึ่งและส่งออกของเวลาต่อวินาทีเท่านั้น
F. Hauri

@ F.Hauri sleep 1ทำให้เธรดปัจจุบันหลับเป็นเวลาหนึ่งวินาที มันเป็นไปตามกฎ
Mego

1
@ F.Hauri พิจารณาว่าผู้เขียนท้าทายตัวเองใช้sleep(1)ทั้งในโซลูชัน AppleScriptและVitsy + bash ของเขาซึ่งเป็นที่ยอมรับอย่างชัดเจน
Mego

9

Perl, Command Line, 24 ไบต์

sleep(say)while$_=gmtime

สิ่งนี้จะต้องถูกเรียกใช้จากบรรทัดคำสั่งเนื่องจากperl -E'sleep(say)while$_=gmtime'(บน windows ให้ใช้เครื่องหมายคำพูดคู่แทน) วันที่จะถูกส่งออกพร้อมกับเวลาที่ดูเหมือนว่าจะได้รับอนุญาต


Perl, 25 ไบต์

sleep print$/.gmtime;do$0

ในบริบทเกลาจะกลับสตริงคล้ายกับgmtime Sat Nov 28 10:23:05 2015ผลจากการprintเสมอ 1 sleepจะถูกใช้เป็นพารามิเตอร์สำหรับ do$0จะใช้ในการรันสคริปต์อีกครั้งหลังจากจับเวลาเสร็จสิ้น


2
จากหลักฐานของโซลูชั่น AppleScriptและความคิดเห็นของ @ VoteToClose คุณไม่จำเป็นต้องแยกเวลา
Mego

1
อีกวิธีที่ 24 {sleep say~~gmtime;redo}ไบต์:
เดนิส Ibaev

sleep 1ตามคำตอบกฎแบ่งที่ 5: คุณต้องรับประกันหนึ่งและเพียงหนึ่งการส่งออกของเวลาต่อวินาที
F. Hauri

@ F.Hauri เพิ่มกฎหลังจากโพสต์นี้แล้ว
โม่

9

Javascript ES6, 43 39 ไบต์

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

ทำงานร่วมกับการตั้งค่าเวลาปัจจุบันของฉัน (ซึ่งยังไม่ได้รับการเปลี่ยนแปลงบางครั้งขอขอบคุณ) อย่างน้อย

4 ไบต์บันทึกโดย Conor O'Brien


การแจ้งเตือนสั้นลงไหม
Maltysen

8
@Maltysen ฉันคิดว่าในเบราว์เซอร์หลายแห่งคุณต้องปิดหน้าต่างการแจ้งเตือนหนึ่งหน้าต่างเพื่อที่จะเห็นหน้าต่างถัดไป
ข้อบกพร่อง

@Maltysen ฉันพยายามมันยุ่งช่วงเวลาอย่างใด
SuperJedi224

1
คุณไม่จำเป็นต้องใช้.toTimeString()ใน Chrome และ FF
บ๊อบ

1
ฉันคิดว่าคุณสามารถแทนที่new Date()ด้วยDate()
Conor O'Brien

8

Arcyóu , 27 ไบต์

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

ฉันต้องแยกฟังก์ชั่นใหม่สองอย่างสำหรับความท้าทายนี้zzและst.

pn: prognเหมือนกับเสียงกระเพื่อมของ

zz: time.sleepการเชื่อมโยงโดยตรงกับงูใหญ่

st: time.strftimeการเชื่อมโยงโดยตรงกับงูใหญ่

โดยปกติแล้วอัญประกาศจะมีความจำเป็นรอบ ๆ สตริงรูปแบบ แต่เนื่องจากไม่มีที่ว่างจึงแยกวิเคราะห์เป็นสัญลักษณ์ ล่ามจะประเมินสัญลักษณ์ที่ไม่ได้กำหนดเหมือนกันดังนั้นเราจึงได้รับสตริง


1
ฉันต้องการโหวต แต่ฉันไม่มีคะแนนเหลือ +1; c และอัปเดตที่ดี : D
Addison Crump

7

Bash, 51 31 24 21 20 ไบต์

ขอบคุณ @quartata สำหรับความคิดเห็นที่เป็นประโยชน์มาก ขอบคุณ @Dennis สำหรับคำชี้แจงและการตัดไบต์ที่มากขึ้น ขอบคุณ @VoteToClose สำหรับการชี้แจงกฎ (ซึ่งเห็นได้ชัดว่าฉันไม่ดีที่อ่าน) ลดไบต์ต่อไป

dateแสดงวันที่แบบเต็มด้วยนาฬิกา 24 ชั่วโมง sleep 1นอนเป็นวินาที exec $0วนซ้ำสคริปต์อย่างไม่สิ้นสุด

date;sleep 1;exec $0

คุณไม่ต้องการ Shebang
ปาเก็ตตี้

นอกจากนี้ผมคิดว่าคุณสามารถแทนที่trueด้วยsleep 1เนื่องจากผลตอบแทนsleep 1
ปาเก็ตตี้

date +%T;sleep 1;exec $0สั้นกว่านี้เล็กน้อย @quartata Nitpicking: sleepมีรหัสทางออกศูนย์ซึ่งเป็นสาเหตุที่whileดำเนินการต่อ
เดนนิส

3
โอ้ฉันเป็นคนงี่เง่า
ปาเก็ตตี้

2
คุณไม่จำเป็นต้องใช้ช่องว่างdateดังนั้นจึงมีขนาดเพียง 20 ไบต์เท่านั้น
ThisSuitIsBlackNot

6

Befunge 98, 53 ไบต์

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

หมายเหตุ:

  1. โปรแกรมนี้ไม่ให้ตัวเลขที่พิมพ์ออกมาเป็นศูนย์
  2. โปรแกรมนี้พิมพ์ช่องว่างแล้วอักขระถอยกลับหลังทุกหมายเลขเนื่องจาก.คำสั่งพิมพ์พื้นที่โดยปริยายที่ท้าย
  3. ขนาดของสแต็คในโปรแกรมนี้เพิ่มขึ้นทุกวินาทีและในที่สุดหน่วยความจำจะหมด
  4. โปรแกรมนี้จะเขียนทับครั้งก่อนเมื่อพิมพ์ใหม่ หากต้องการให้พิมพ์แต่ละครั้งในบรรทัดใหม่ให้เปลี่ยนdบนบรรทัดแรกเป็นa

เหตุใดจึงต้องใช้สตริง "TIME" มีวิธีจับหรือไม่? (ฉันไม่รู้เรื่องนี้)
Addison Crump

"EMIT"4(ที่จุดเริ่มต้นของโปรแกรมจะบอกล่ามโหลดTIMEลายนิ้วมือซึ่งจะช่วยให้H, MและSคำแนะนำ (ไม่ไม่ปล่อยหมายเลข 4)
pppery

นั่นคือที่น่ากลัว ฉันไม่เคยคิดมาก่อนเลยว่าจะมีชาวเอเชียตะวันออกเฉียงใต้ทำเช่นนี้ +1
Addison Crump

@VoteToClose Befunge 98 ยังมีคำสั่งให้เรียกใช้โปรแกรม arbritrary ที่โผล่จากสแต็ก
pppery

1
หมดไปเพื่อเรียนรู้ภาษานี้ขอโทษฉัน ...
Addison Crump

6

mIRC 7.49 20 16 ไบต์

/timer 0 1 $time

เราจะทดสอบสิ่งนี้ได้ที่ไหน
Addison Crump

คุณต้องดาวน์โหลด mIRC มันเป็นไคลเอนต์ IRC แบบแชร์แวร์ คุณสามารถดาวน์โหลดได้จาก: mirc.comเนื่องจากคำตอบข้างต้นทำให้sayคุณต้องใช้การเชื่อมต่อกับเซิร์ฟเวอร์แล้วเข้าร่วมช่อง อื่น ๆ ที่ชาญฉลาดที่คุณจะใช้แทนecho saymIRC มีภาษาสคริปต์เป็นของตัวเอง mSL (ภาษาสคริปต์ mIRC)
Do0msDay

5

AutoHotkey ขนาด 50 ไบต์

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

หมายเหตุ:

  1. คุณต้องกดค้างxเอาท์พุทต่อเนื่อง
  2. เอานิ้วของคุณออกจากxเพื่อขัดจังหวะและจบผลลัพธ์
  3. เอาต์พุตอยู่ในรูปแบบ 24 ชั่วโมง

2
xคุณสามารถสำหรับไบต์พิเศษบางใส่ว่าในคำแนะนำเครื่องมือดังนั้นจึงไม่จำเป็นต้องมีผู้ใช้ไว้
Michelfrancis Bustillos

5

C (บน Linux x64), 179 177 175 168 159 ไบต์

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

ทดสอบเฉพาะในและอาจใช้งานได้กับฟังก์ชันเท่านั้นเท่านั้น linux x64 (x32 อาจทำงานได้ แต่แพลตฟอร์มอื่นอาจไม่ทำงาน)

ข้อแตกต่างที่สำคัญระหว่างโปรแกรมนี้และโปรแกรม C ที่โพสต์อื่น ๆ คือการใช้การเรียกใช้ฟังก์ชั่นพิเศษของ linux ซึ่งในขณะที่การฝึกฝนอย่างน่ากลัวสำหรับซอฟต์แวร์จริงจะช่วยประหยัดได้ไม่กี่ไบต์ ... หากคุณไม่สนใจคำเตือนของคอมไพเลอร์ทั้งหมด


ยินดีต้อนรับสู่ PPCG! เว้นแต่ฉันเข้าใจผิดผมเชื่อว่าคุณสามารถลบช่องว่างระหว่างและ#include <...>นอกจากนี้คุณสามารถใช้1e6แทนได้1000000หรือไม่
Addison Crump

@VoteToClose คุณมีสิทธิที่เกี่ยวกับช่องว่างในการ#includes มันดูไม่เหมือน usleep () ยอมรับ 1e6 แต่ - ขึ้นอยู่กับว่ามันเริ่มคายออกมาได้เร็วแค่ไหนมันแค่ตีความมันเป็น 1
Gamerdog

¯ \ _ (ツ) _ / ¯ฉันไม่รู้จัก C เช่นกัน ฉันจะปล่อยให้มืออาชีพที่ ยินดีต้อนรับอีกครั้งได้รับการโหวต : D
Addison Crump

อ่าอีกอย่างหนึ่ง - คุณไม่จำเป็นต้องตัดสตริงเพียงแค่เวลาดังนั้นคุณสามารถส่งออกวันเวลาทั้งหมดได้หากมีสตริงเวลาที่ต้องการ
Addison Crump

2
คุณสามารถใช้เป็นข้อมูลจำเพาะรูปแบบใน%T strftime
Mego

5

Jolf , 14 8 7 ไบต์

ข้ามออกไป 14 เป็น 1 ขีด ไม่เลยมันจะไม่ติดกับ;)

ลองที่นี่! คลิกเรียกใช้อย่าคลิกสิ่งอื่นใด ^ _ ^ หน้านี้เป็นอย่างมาก ... ระเบิดได้ ใช่. แก้ไขระบบเอาท์พุทพร้อมอัพเดท

TaD#`~2

(ผมเพิ่มค่าคงที่บางส่วนและ~1การ~4มีอำนาจของ10.)

คำอธิบาย

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

4
บางคนควรสร้าง YAJSGV (แต่เป็นอีกหนึ่งตัวแปรการเล่นกอล์ฟของ JavaScript)
intrepidcoder

ดูเหมือนว่าจะพิมพ์มากเกินกว่าเวลา
เดนนิส

1
@ เดนนิสฉันคิดว่ามันดีตามวิธีแก้ปัญหาอื่น ๆ
Conor O'Brien

ของฉันไม่ดีฉันเพิ่งอ่านของคุณและคำตอบ Bash
เดนนิส

@Dennis ไม่ใช่ปัญหา ^ _ ^
Conor O'Brien

5

Dyalog APL , 27 18 16 ไบต์

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

ลองออนไลน์!

⎕TSYMD hmst
':',¨prepend: ไปที่
คำสั่งใหม่แต่ละคำสั่ง
⎕DL 1รอหนึ่งวินาทีและส่งคืนเวลารอจริง 1.0 วินาทีบางครั้งจะ
นับเวลารอคอยจริงโดยให้ 1
go to line (1 = บรรทัดนี้)


4

Perl 6 , 29 ไบต์

ขวาวิธีที่จะทำเช่นนี้:

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
…

รุ่น golfed

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
…

เนื่องจากผลผลิตไม่จำเป็นต้อง จำกัด เพียงแค่เวลาฉันสามารถทำให้มันค่อนข้างสั้น

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

Powershell, 19 ไบต์

for(){date;sleep 1}

เนื่องจากได้รับการชี้ให้เห็นว่าการส่งออกเพียงแค่ต้องรวม hh: mm: ss คุณสามารถลดการfor(){date;sleep 1}
สตีฟ

4

PHP, 37 ไบต์

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

เอาต์พุตเวลาเซิร์ฟเวอร์ที่จัดรูปแบบและตั้งค่าหน้าให้รีเฟรชทุกวินาที

แน่นอนว่ามันขึ้นอยู่กับการเชื่อมต่ออินเทอร์เน็ตของคุณและความรวดเร็วในการตอบสนองต่อเซิร์ฟเวอร์ของคุณ :)

การสาธิต


ไม่ไม่รีเฟรช:Warning: Cannot modify header information - headers already sent
Martijn

@Martijn ฉันมีความคิดสิ่งที่คุณสามารถรับประทานอาหารที่มีเพราะมันทำงานสำหรับฉัน :) ไม่มี
nicael

ฉันจะลบ downvote นั้นเพื่อประโยชน์ของข้อสงสัย แต่มันได้ผลเพียงครั้งเดียวสำหรับฉัน ลองใช้เซิร์ฟเวอร์ปกติสองเครื่อง
Martijn

2
ขึ้นอยู่กับว่าคุณเปิดบัฟเฟอร์การส่งออกหรือไม่
Andrea

<?=header('refresh:1').date('G:i:s');ควรทำงานกับการตั้งค่าเอาต์พุต bffering อย่างใดอย่างหนึ่ง
Jasen

4

VBA, 69 ไบต์

การรับเวลาเป็นเรื่องง่ายnow()เพียงแค่ส่งออกทุก ๆ 1 วินาที

นี่เป็นวิธี "ถูกต้อง" ในการรอ 1 วินาทีใน VBA 78 ไบต์

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

หรือถ้าคุณต้องการที่จะตัดมุมบางส่วนและเพียงถูก 86% ของเวลานั้นดีพอที่63 Bytes
เพิ่มหนึ่ง SigFig นำคุณไปสู่ความแม่นยำ 95% และที่สามจะได้รับคุณถึง 99.36%

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

หากคุณต้องการได้รับวิธีการดังกล่าวเป็น 100% แล้วคุณต้อง69 ไบต์ (1/86400)

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

วิธีการทั้งหมดเหล่านี้จะสะดุดในวินาทีกระโดดเพราะพวกเขาไม่รอ 1 วินาที แต่รอจนกว่า 1 วินาที ในเวลาเที่ยงคืนเมื่อนาฬิกาถอยกลับหนึ่งชั่วโมงนาฬิกานี้จะหยุดเป็นเวลา 1 ชั่วโมงจากนั้นเลือกตำแหน่งที่เหลือ

VBA ไม่อนุญาตให้ใช้วิธีการนอนหลับ แต่ตัวควบคุมไบต์ของคุณถูกทำลาย 97 ไบต์

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

3

JavaScript, 47 38 35 ไบต์

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

คำอธิบาย

ตรวจสอบอย่างต่อเนื่องว่าเวลามีการเปลี่ยนแปลงแล้วalertถ้ามี

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

คุณไม่จำเป็นต้องรับค่าสตริงเวลา ; D ตราบใดที่ยังมีอยู่
Addison Crump

@VoteToClose โอ้จริง!
user81655

อย่าคิดว่าคุณต้อง+""เป็นโดยไม่ต้องnew, Date()ส่งกลับสตริง
ETHproductions

@ETHproductions newอาใช่ที่ถูกทิ้งไว้ที่นั่นเมื่อมันมาใช้ ขอบคุณสำหรับการจับ!
user81655

3

AppleScript, 51 35 ไบต์

ทำซ้ำ
บันทึกวันที่ปัจจุบัน
ล่าช้า 1
ปลาย

เห็นได้ชัดว่าแดงสวย พิมพ์วันที่ปัจจุบันซึ่งมีเวลาหน่วงเวลาหนึ่งวินาทีจากนั้นดำเนินการต่อ


1
ดังนั้นรอสักครู่จะได้รับอนุญาตให้พิมพ์วันที่ปัจจุบันและเวลาหรือไม่
ปาเก็ตตี้

@quartata ใช่การต่อข้อมูลใด ๆ กับเวลาตราบใดที่เวลาถูกส่งออกอย่างต่อเนื่องและรับประกันว่าจะได้ผลลัพธ์
Addison Crump

หน่วงเวลา 1 ทำอะไร หยุดชั่วคราวสำหรับ 1000000000 ns
Jasen

@ Jasen ถูกต้องแล้ว
Addison Crump

3

ch, 13 ตัวอักษร / 25 ไบต์

Ĥ⇀ôᶁ⬮+⬬),1𝕜)

Try it here(Firefox only).

สิ่งนี้สามารถอ่านได้อย่างน่าประหลาดใจ


4
เมื่อคุณพูดว่า "อ่านได้อย่างน่าประหลาดใจ" คุณจะรู้ว่าคุณกำลังเผชิญกับภาษาที่สนุกสนาน +1
Addison Crump

3

Dyalog APL ขนาด 36 ไบต์

ไม่สั้นมากในเวลานี้

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

เอาต์พุตนี้เวลา 24 ชั่วโมงเช่น:

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

คำอธิบาย:

  • {... }1: กำหนดฟังก์ชั่นและเรียกมันว่า (อาร์กิวเมนต์ถูกละเว้น แต่เราต้องการฟังก์ชันเพื่อเรียกมันซ้ำ ๆ )
    • ⎕TS: ฟังก์ชั่นระบบที่ส่งกลับวันที่และเวลาปัจจุบันในรูปแบบปี - เดือน - วัน - ชั่วโมง - นาที - สอง - มิลลิวินาที ( ⎕TS= t ime s tamp)
    • 3↑3↓: วาง 3 รายการแรก (เช่นปี - เดือน - วัน) แล้วนำ 3 รายการแรกที่เหลือ (ชั่วโมง - นาที - วินาที)
    • '⊂:⊃,ZI2'⎕FMT: จัดรูปแบบแต่ละตัวเลขเป็นจำนวนเต็มสองหลัก ( I2) ด้วยเลขศูนย์นำหน้า ( Z) นำหน้าด้วยเครื่องหมายโคลอน ( ⊂:⊃) (ผลลัพธ์นี้เป็นเมทริกซ์)
    • : รับองค์ประกอบทั้งหมดในเมทริกซ์ตามลำดับแถว (นี่จะให้เวกเตอร์ในกรณีนี้คือสตริง)
    • 1↓: วางอักขระแรก (ซึ่งเป็นพิเศษ:)
    • ⎕←: เอาท์พุทมัน
    • ⎕DL 1: จากนั้นรอหนึ่งวินาที ( ⎕DL= d e l ay)
    • : เรียกใช้ฟังก์ชันซ้ำ ๆ

{⎕←1↓∊':',¨⍕¨3↑3↓⎕TS⋄∇⎕DL 1}128 ไบต์เป็นพอเป็นต่อ OP
อดัม

กฎใหม่อนุญาตให้มีการส่งออกขยะและพื้นที่ว่างแบบสุ่มดังนั้นคุณสามารถกำจัดได้มาก
Adám


3

Haskell, 98 96 85 ไบต์

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

เวอร์ชันสำรองที่ใช้ทำเครื่องหมาย:

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

รับเวลาปัจจุบันด้วยgetCurrentTimeจากData.Timeไลบรารีจากนั้นส่งเข้าไปในprintนั้นรอ 1,000,000 microseconds (1 วินาที) และเรียกตัวเอง

ขอบคุณ nimi และ Mauris!


m@main=...>>mสั้นกว่าเสมอเสมอmain=...>>main
Lynn

นอกจากนี้เนื่องจากthreadDelayเป็นแบบเฉพาะ GHC คุณสามารถนำเข้าได้จาก GHC.Conc
Lynn

3

รุ่นที่ - 34 40ไบต์

ฉันชอบตัวแปรในตัว:

: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

จำเป็นต้องมีsleepคำสั่งบางอย่างในแบทช์ทุกเวลาเร็ว ๆ นี้


ไม่มี builtin sleep แต่หมดเวลาแล้ว คุณสามารถแทนที่ด้วยping ... นอกจากนี้นาฬิกาไม่ถูกต้องมากเมื่อใช้timeout 1 pingดีกว่าด้วยtimeout;)
DavidPostill

@ DavidPostill ขอบคุณสำหรับเคล็ดลับฉันไม่เคยรู้ว่ามีคำสั่งดังกล่าวใน Windows :)
GiantTree

@GiantTree ยินดีต้อนรับคุณมาก;)
DavidPostill

กอล์ฟ: ถอด:Aและแทนที่goto Aด้วย%0
stevefestl

3

Python 3, 99 ไบต์

ขอโทษถ้ามันรูปแบบรหัสแปลกทำเช่นนี้จาก iPad (ไม่ต้องถาม) ฉันรู้ว่ารหัสนี้มีขนาดใหญ่เมื่อพิจารณาคำตอบอื่น ๆ แต่ฉันไม่เห็นงูหลามเลยดังนั้นฉันต้องการที่จะเพิ่มเข้าไป

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

คุณสามารถแทนที่Trueด้วย1และถ้าคุณใส่printและและsleepบรรทัดในบรรทัดเดียวกับwhile(คั่นด้วยเครื่องหมายอัฒภาค) มันช่วยให้คุณประหยัดช่องว่าง
undergroundmonorail

@undergroundmonorail ok ขอบคุณสำหรับทิป True / 1 ฉันไม่คุ้นเคยกับสิ่งนั้นตั้งแต่ Java Dosent ทำเช่นนั้น ฉันไม่รู้ว่า Python มีเครื่องหมายอัฒภาคด้วยเช่นกัน ฉันจะดูว่า
Ashwin Gupta

3

Java, 300 166 137 125 124 ไบต์

เกือบจะมากกว่าครึ่งได้ขอบคุณ VoteToClose, Paülo Ebermann และ janschweizer!

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
ทำให้การนำเข้าของคุณง่ายขึ้น: java.util.*แทนที่จะjava.utilนำเข้าทั้งสองjava.text.*เพื่อเหตุผลเดียวกัน ใช้for(;;)สำหรับลูปที่ไม่มีที่สิ้นสุด ใช้String[]aในการประกาศหลัก ใช้interface A{static void main(...เช่นนี้จะสั้นลงได้มากขึ้น คุณสามารถใช้Exceptionมากกว่าInterruptedExceptionและคุณสามารถแทนที่ด้วยex eนอกจากนี้คุณยังสามารถลบข้อความทั้งหมดที่อยู่ในการจับได้เช่นกัน
Addison Crump

1
ใช่สิ่งที่อินเทอร์เฟซแปลกประหลาดเล็กน้อย - ฉันไม่รู้ว่าทำไม Java จะปล่อยให้เป็นอย่างนั้นเพราะอินเทอร์เฟซนั้นได้รับการออกแบบมาโดยเฉพาะเพื่อให้ทำงานไม่ได้
Addison Crump

1
สองสิ่ง: คุณต้องเปลี่ยนสตริงเวลาเป็น "HH: mm: ss" - ณ ตอนนี้คุณกำลังจัดรูปแบบ "ชั่วโมง: เดือน: วินาที" นอกจากนี้เนื่องจากคุณใช้ลูปคุณสามารถกำจัดDateFormatและCalendarการประกาศตัวแปรทั้งหมดเข้าด้วยกัน System.out.println(new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()));try{Thread.sleep(1000);}catch(Exception e){}คุณเปลี่ยนเนื้อหาของการห่วงกับ
Addison Crump

1
ทุกสิ่งที่ฉันเพิ่งแนะนำห่อ: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){}}}}
แอดดิสัน Crump

1
throws Exceptionสั้นกว่าลอง / จับ
เฟส

3

Perl, 99 81 75 51 40 36 29 27 ไบต์

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

1
คุณสามารถลดได้โดยใช้แทนgmtime localtime
แบรดกิลเบิร์ต b2gills

2
นอกจากนี้printf"%02d:%02d:%02d\n",(gmtime)[2,1,0]
แบรดกิลเบิร์ต b2gills

1
gmtime."\n"จะบังคับบริบทสเกลาร์
primo

1
คุณไม่จำเป็นต้อง."\n"เล่นกอล์ฟ: ใช้.$/เพื่อบันทึก 2 ไบต์ อย่างน้อยที่สุดให้ใช้ตัวอักษรขึ้นบรรทัดใหม่แทน\nการบันทึก 1 ไบต์
ThisSuitIsBlackNot
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.