แสดงนาฬิกาดิจิตอล


20

แสดงนาฬิกาดิจิตอล

(ฉันเห็นว่ามีความท้าทายเกี่ยวกับนาฬิกามากมายฉันได้ลองอ่านพวกเขาทั้งหมดฉันค่อนข้างแน่ใจว่านี่ไม่เหมือนใคร)

เขียนโค้ดบางส่วนที่ปรับปรุงอย่างต่อเนื่องนาฬิกาดิจิตอลแสดงในรูปแบบh:m:sที่h, mและsสามารถครอบครอง 1 หรือ 2 ตัวละครแต่ละคน ข้อ จำกัด ในแง่ง่าย ๆ เป็น @BlueEyedBeast ใส่ไว้ฉันต้องการให้มันแทนที่เวลาที่แสดง

  • ไม่อนุญาตให้ขึ้นบรรทัดใหม่
  • อนุญาตให้เว้นวรรคต่อท้าย
  • ไม่อนุญาตให้ใช้อักขระต่อท้ายอื่น ๆ
  • ไม่ควรพลาดเป็นวินาที (57 -> 59 ไม่อนุญาต)
  • อนุญาตให้ใช้หมายเลขที่ขึ้นต้นด้วย "0" ได้ตราบใดที่ตัวเลขเหล่านั้นมีอักขระไม่เกิน 2 ตัว
  • รหัสจะต้องไม่ยอมรับอินพุตใด ๆ
  • หากภาษาของคุณไม่สามารถรับเวลาปัจจุบันโดยไม่มีการป้อนข้อมูลคุณอาจใช้สำหรับการป้อนข้อมูลสูงสุด 8 ไบต์ในวิธีที่ได้รับอนุญาตมาตรฐาน
  • เอาต์พุตต้องเป็น stdout
  • นี่คือ codegolf ดังนั้นคำตอบที่สั้นที่สุดชนะ!

ตัวอย่าง

ฉันกำลังทำงานกับภาษาที่ชื่อ *> <> (ปลาดาว) เพราะโปรแกรมแบบนี้เป็นไปไม่ได้ใน> <> (แค่รอไฟล์ i / o) นี่คือโปรแกรมนาฬิกาดิจิตอลที่ใช้งานได้ (ไม่ได้บรรจุ) โปรแกรมนี้เขียนเป็น*> <> :

s":"m":"hnonon"   "ooo88888888888ooooooooooo1S

หมายเหตุ: ทุกอย่างเหมือนกับ> <> ในสิ่งนี้ยกเว้น, s = วินาที, m = นาที, h = ชั่วโมง, S = sleep (100ms * x)

ผลลัพธ์นี้:

14:44:31

อัปเดตทุก ๆ 100ms จนกว่าจะสิ้นสุด

ตัวอย่างที่ไม่อนุญาต

ไม่อนุญาตสิ่งต่อไปนี้:

1:

14:44:3114:44:32

2:

14:44:31 14:44:32

3:

14:44:31
14:44:32

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


1
เราต้องรอ 100 มิลลิวินาทีหรือไม่
Blue

1
คุณไม่ต้องรอการรอเป็นเพียงตัวอย่าง
redstarcoder

2
ข้อกำหนดการท้าทายนั้นเข้มงวดเกินไปสำหรับฉัน
mbomb007

1
@ mbomb007 ฉันลบ "โปรแกรมจะต้องสามารถออกจากการป้อนข้อมูลของผู้ใช้ที่ไม่ใช่สัญญาณ / ขัดจังหวะ" เนื่องจากคำตอบปัจจุบันดูเหมือนจะไม่ทำตามเลย
redstarcoder

1
โปรแกรมสามารถพึ่งพาการตั้งค่าเฉพาะของระบบปฏิบัติการได้หรือไม่?
raznagul

คำตอบ:


5

Pyke ขนาด 6 ไบต์

Ctr\ J

ลองที่นี่!

ฉันคิดว่ามันถูกต้อง แทนที่อักขระช่องว่างด้วย carriage return สำหรับเอาต์พุตที่ถูกต้อง (ไม่ทำงานออนไลน์)


ขอโทษนะมันไม่ใช่ ไม่มีการขึ้นบรรทัดใหม่ที่อนุญาตหรือต่อท้ายอักขระหลังจากเวลานั้น ฉันจะใส่ 2 ตัวอย่างให้ชัดเจนยิ่งขึ้น
redstarcoder

ฉันไม่เห็นสิ่งนั้นในข้อมูลจำเพาะใช่หรือไม่
Blue

1
บรรทัดแรกบอกว่าไม่อนุญาตให้ขึ้นบรรทัดใหม่บรรทัดที่สามบอกว่าไม่มีอักขระต่อท้าย ฉันขอโทษถ้ามันไม่ชัดเจนฉันขอขอบคุณคำแนะนำในการแก้ไข
redstarcoder

ดังนั้นคุณต้องการที่จะแทนที่เวลาเก่าที่แสดง?
Blue

ใช่แล้ว! รหัสปัจจุบันของคุณดูเหมือนจะสมบูรณ์แบบ
redstarcoder

10

HTML + JS (ES6), 8 + 60 = 68 ไบต์

ทดสอบใน Chrome แล้ว

setInterval`a.innerHTML=new Date().toLocaleTimeString('fr')`
<a id=a>

-1 ไบต์ (@ETHProductions): ใช้รูปแบบเวลาฝรั่งเศสแทน .toTimeString().slice(0,8)


HTML + JS (ES6), 8 + 62 = 70 ไบต์

สิ่งนี้จะทำงานใน FireFox

setInterval('a.innerHTML=new Date().toLocaleTimeString`fr`',0)
<a id=a>

-3 ไบต์ (@ETHProductions): ใช้รูปแบบเวลาฝรั่งเศสแทน .toTimeString().slice(0,8)


2
มันทำงานอย่างไร ฉันไม่เคยเห็นไวยากรณ์ backtick มาก่อน ฉันไม่พบอะไรเลยหลังจากค้นหาอย่างรวดเร็ว
Carcigenicate

1
ทำงานกับฉันใน Inox (Chromium)
redstarcoder

1
@Carcigenicate เป็นส่วนหนึ่งของข้อกำหนด JavaScript ล่าสุด ECMAScript6 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/
......

@Darrylyeo ขอบคุณ ฉันสามารถค้นหาสิ่งต่าง ๆ ในรูปแบบตัวอักษร แต่ฉันไม่เห็นว่าจะมีการนำไปใช้อย่างไรที่นี่ ฉันจำเป็นต้องอ่านข้อมูลจำเพาะอีกครั้ง ฉันยังไม่เข้าใจว่าจะใช้ฟังก์ชันที่นำหน้า backtick อย่างไร
Carcigenicate

2
คุณสามารถบันทึก 3 ไบต์ใน Firefox ด้วยnew Date().toLocaleTimeString`fr` (1 ไบต์ใน Chrome one ด้วย...TimeString('fr'))
ETHproductions

6

Python 2, 50 ไบต์

(Python 2.1+ สำหรับctimeโดยไม่มีอาร์กิวเมนต์)

import time
while 1:print'\r'+time.ctime()[11:19],

time.ctime()ทำให้สตริงที่จัดรูปแบบซึ่ง hh: mm: ss อาจถูกแบ่งโดยใช้[11:19](มันยังคงอยู่ในตำแหน่งเดียวกันไม่ว่าวันที่และเวลา)

printไอเอ็นจีผลตอบแทนการขนส่ง'\r'ก่อนที่ข้อความและทำให้ข้อความรายการแรกของ tuple ด้วยได้,อย่างมีประสิทธิภาพระงับการติดตามโดยปริยาย'\n'และเขียนทับเอาท์พุทเขียนก่อนหน้านี้

while 1 ลูปตลอดไป


3
ฉันคิดว่านี่เป็นสิ่งจำเป็น,ในตอนท้ายของการขึ้นบรรทัดใหม่อย่างอื่นใน Python 2.7.12 ฉันได้รับการขึ้นบรรทัดใหม่
redstarcoder

อ๊ะใช่คุณถูกต้อง ... อัปเดตแล้ว
Jonathan Allan

5

Mathematica, 48 41 37 28 ไบต์

Do[s=Now[[2]],∞]~Monitor~s

ผลลัพธ์จะเป็น a TimeObject, refresh อย่างต่อเนื่อง

ดูเหมือนว่านี้: enter image description here

รุ่นทางเลือก

48 ไบต์:

Dynamic@Refresh[TimeObject[],UpdateInterval->.1]

53 ไบต์:

Dynamic@Refresh[DateString@"Time",UpdateInterval->.1]

1
ด้วยการอัพเดททุกวินาทีคุณแน่ใจหรือไม่ว่าไม่ข้ามวินาที (เช่น: 11:11:11 -> 11:11:13)
redstarcoder

Dynamic@{DateString@TimeObject[], Clock[]}[[1]]
DavidC

1
@redstarcoder อัพเดททุก ๆ ~ 1.002s ดังนั้นฉันจึงเปลี่ยนเป็นอัปเดตทุก ๆ 100ms
JungHwan Min

Welp Pauseผมก็รู้ว่าผมไม่ได้มีความจำเป็นจริง
JungHwan Min

Dynamic@{Now,Clock[]}[[1]]คือ 26 ไบต์และแสดงวัตถุ datetime Dynamic@{DateString@"Time",Clock[]}[[1]]เป็น 40 ไบต์และให้ผลลัพธ์เฉพาะ hh: mm: ss
Kelly Lowder

5

ฉันเห็นว่าข้อกำหนดสำหรับอินพุต UI ที่ไม่ใช่สัญญาณเพื่อหยุดโปรแกรมได้ถูกลบออก ดังนั้นตอนนี้เราสามารถทำ:

Bash + coreutils, 28

yes now|date -f- +$'\e[2J'%T

yes ส่งออกสตริงอย่างต่อเนื่อง "ตอนนี้" หนึ่งครั้งต่อบรรทัดในท่อ

date -f-อ่านตีความแต่ละ "ตอนนี้" เป็นเวลาปัจจุบันจากนั้นออกในรูปแบบที่ต้องการ สตริงรูปแบบรวมถึงลำดับ escape ของ ANSI เพื่อล้างหน้าจอ date ไม่เอาท์พุทขึ้นบรรทัดใหม่หลังจากวันที่ - ฉันไม่แน่ใจว่าถ้า disqualifies นี้เนื่องจากหน้าจอจะถูกล้างทุกครั้งอยู่แล้ว

หากมันถูกตัดสิทธิ์เราสามารถใช้trแทน:

Bash + coreutils, 31

yes now|date -f- +%T|tr \\n \\r

คำตอบก่อนหน้า:

Bash + X, 32

xclock -d -update 1 -strftime %T

น่าเสียดายที่นี่สามารถอัปเดตทุก ๆ วินาทีเท่านั้น หากการตัดสิทธิ์นั้นเราสามารถทำได้แทน:

Bash + coreutils, 43

until read -t0
do printf `date +%T`\\r
done

การอัปเดตทุก ๆ วินาทีนั้นใช้ได้ตราบใดที่ไม่ข้ามวินาที (IE: 12-> 14)
redstarcoder

ฉันจะขึ้นบรรทัดใหม่ของคุณ! ฉันไม่เคยคาดหวังว่ากรณีนี้จะเกิดขึ้นเฮ้
redstarcoder

สิ่งนี้ได้รับอนุญาตหรือไม่? date +$'\e[2J'%T;$0
Evan Chen

@EvanChen ไม่เนื่องจากแต่ละการวนซ้ำจะเกิดกระบวนการใหม่ซ้ำและในที่สุดจะใช้หน่วยความจำที่มีอยู่หรือพื้นที่ PID ที่มีอยู่ซึ่งคล้ายกับการล้นสแต็ก อย่างไรก็ตามคุณสามารถทำได้date +$'\e[2J'%T;exec $024 ไบต์ ...
บาดเจ็บดิจิทัล

4

QBICขนาด 6 ไบต์

{_C?_d

{      Starts a DO-loop
 _C    CLS
   ?   PRINT
    _d TIME$

22:03:41อย่างต่อเนื่องล้างหน้าจอและพิมพ์เวลาของระบบในรูปแบบ


3

Clojure, 150 136 141 ไบต์

V3: 141 ไบต์ :(

+5 ไบต์เพื่อแก้ไขข้อบกพร่อง เนื่องจากเวลาไม่ได้เป็นศูนย์เบาะนาฬิกาสามารถ "ลดขนาด" และขยายเมื่อเวลาเปลี่ยน มันเป็น "การละเลง" เมื่อมันหดเพราะตัวเลขสุดท้ายไม่ถูกลบออกอีกต่อไป แก้ไขโดยเพิ่มช่องว่างท้ายเพื่อให้แน่ใจว่าทุกอย่างถูกเขียนทับ

#(while true(flush)(print(str(apply str(repeat 9"\b"))(.format(java.text.SimpleDateFormat."H:m:s")(java.util.Date.))"   "))(Thread/sleep 99))

V2: 136 ไบต์

#(while true(flush)(print(str(apply str(repeat 9"\b"))(.format(java.text.SimpleDateFormat."H:m:s")(java.util.Date.))))(Thread/sleep 99))

-14 ไบต์โดยสลับไปใช้SimpleDateFormatเพื่อจัดรูปแบบวันที่ ยังคงมีขนาดใหญ่มาก

V1: 150 ไบต์

#(while true(let[d(java.util.Date.)](flush)(print(str(apply str(repeat 9 "\b"))(.getHours d)":"(.getMinutes d)":"(.getSeconds d)))(Thread/sleep 100)))

ฉันรู้ว่าฉันอาจใช้วิธีที่แย่ที่สุดเท่าที่จะเป็นไปได้เพื่อนัดเดท ห้องพักแน่นอนสำหรับการปรับปรุงที่นี่

Ungolfed:

(defn -main []
  (while true
    (let [d (java.util.Date.)]
      (flush)
      (print
        (str
          (apply str (repeat 9 "\b"))
          (.getHours d)":"(.getMinutes d)":"(.getSeconds d)))
      (Thread/sleep 100))))


2

WinDbg ขนาด 73 ไบต์

.do{r$t0=0;.foreach(p {.echotime}){r$t0=@$t0+1;j8==@$t0'.printf"p \r"'}}1

มันปรับปรุงสายอย่างต่อเนื่องกับเวลาปัจจุบันจนกระทั่งผู้ใช้กด Ctrl + Break

มันทำงานอย่างไร:

.do                          * Start do-while loop
{
    r$t0 = 0;                * Set $t0 = 0
    .foreach(p {.echotime})  * Foreach space-delimited word in a sentence like "Debugger (not 
    {                        * debuggee) time: Mon Dec  5 14:08:10.138 2016 (UTC - 8:00)"
        r$t0 = @$t0+1;       * Increment $t0
        j 8==@$t0            * If $t0 is 8 (ie- p is the current time)
        '
            .printf"p \r"    * Print p (current time) and \r so the next print overwrites
        '
    }
} 1                          * Do-while condition: 1, loop forever

เอาท์พุทตัวอย่าง (ดีคุณจะได้รับความคิด):

0:000> .do{r$t0=0;.foreach(p {.echotime}){r$t0=@$t0+1;j8==@$t0'.printf"p \r"'}}1
14:10:12.329

2

PHP, 28 ไบต์

for(;;)echo date("\rH:i:s");

dateฟังก์ชั่นการพิมพ์ทุกอย่างแท้จริงว่ามัน doesn't รู้จัก

\r คือการขึ้นบรรทัดใหม่ตั้งเคอร์เซอร์ไปที่คอลัมน์แรก

-rทำงานด้วย


2

MATL 11 ไบต์

`XxZ'13XODT

วนซ้ำไม่สิ้นสุดที่ล้างหน้าจอและพิมพ์เวลาในรูปแบบที่ระบุ

คุณสามารถลองได้ที่MATL Online! . คอมไพเลอร์นี้กำลังทำการทดลอง ถ้ามันไม่ทำงานรีเฟรชหน้าและกด "Run" อีกครั้ง


2

C #, 82 ไบต์

()=>{for(;;)Console.Write(new string('\b',8)+DateTime.Now.ToString("HH:mm:ss"));};

วิธีการไม่ระบุชื่อซึ่งจะเขียนทับ 8 ตัวอักษรด้วยเอาต์พุตใหม่อย่างต่อเนื่อง สามารถทำให้สั้นลง 1 ไบต์หากแก้ไขเพื่อยอมรับพารามิเตอร์ดัมมี ( z=>...)

โปรแกรมเต็มรูปแบบ:

using System;

public class Program
{
    public static void Main()
    {
        Action a =
        () =>
        {
            for (;;)
                Console.Write(new string('\b', 8) + DateTime.Now.ToString("HH:mm:ss"));
        };

        a();
    }
}

1
อนุญาตให้นำเข้าSystemหรือไม่ บางคนทำและบางคนไม่: /
Yytsi

เขาไม่ได้แก้ปัญหาที่แท้จริงของเขาเพียงแค่ในโปรแกรมการสาธิตดังนั้นใช่มันก็โอเค
Stefan

2

C #, 65 ไบต์

()=>{for(;;)Console.Write("\r"+DateTime.Now.ToLongTimeString());};

ทำงานโดยเขียนทับบรรทัดเดียวกันภายในการวนซ้ำไม่รู้จบ


2

SmileBASIC 3.3.2, 38 ไบต์

@L?TIME$;" ";
GOTO@L

UTF-16 ครับ :(

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


ขออภัยนี่ไม่ถูกต้องจำเป็นต้องแทนที่ผลลัพธ์ การตั้งค่าบรรทัดแรก @L?TIME$และต่อท้ายบรรทัด (สำหรับทั้งหมด 3 บรรทัด) ที่อ่านLOCATE 0, 0เคล็ดลับได้หรือไม่ (SmileBASIC รองรับการขึ้นบรรทัดใหม่ส่งคืนหรือไม่)
redstarcoder

นอกจากนี้คุณลืมที่จะทำคะแนนขึ้นบรรทัดใหม่ด้วยเหตุนี้ 40 ไบต์ (UTF-16 นั้นโหดร้ายสำหรับการตีกอล์ฟ) คุณสามารถรับความยาวของตัวละครได้อย่างง่ายดายผ่าน Python REPL len(""" YOUR CODE HERE """)จากนั้นทำ * 2 สำหรับ UTF-16
redstarcoder

SB ไม่ทำ CR จริง ๆ ฉันจะต้องวาง LOCATE ลงในนั้นซึ่งจะทำลายคะแนนของฉันอย่างแน่นอน: P หรือ CLS: VSYNC ซึ่งแย่มาก
หอยทาก _

ใช่เศร้าวิธีนี้ไม่ถูกต้องถ้าไม่มีมัน ข่าวดีแม้ว่า! SmileBASIC เป็นคะแนนเป็น UTF-8
redstarcoder

2

C, 134 116 89 80 76 75 73 ไบต์

main(n){for(;time(&n);)printf("\r%02d:%02d:%02d",n/3600%24,n/60%60,n%60);}

---- Old versions:
main(n){for(;;)n=time(0),printf("\r%02d:%02d:%02d",n/3600%24,n/60%60,n%60);}

n;main(){for(;;)n=time(0),printf("\r%02d:%02d:%02d",n/3600%24,n/60%60,n%60);}

---- 

n;main(){for(;;)n=time(0),printf("\r%02d:%02d:%02d",n/3600%24,n/60%60,n%60);}

----

Saved 9 more bytes thanks to @nmjcman101 again:
n;main(){for(;;)n=time(0),printf("\r%02d:%02d:%02d",(n/3600)%24,(n/60)%60,n%60);}

----

Saved 27 bytes thanks to @nmjcman101
n,b[9];main(){for(;;){n=time(0);strftime(b,9,"%H:%M:%S",localtime(&n));printf("\r%s",b);}}

----

I figured out I don't need to put `#include<stdio.h>` into the file :)
#include<time.h>
main(){for(;;){time_t n=time(0);char b[9];strftime(b,9,"%H:%M:%S",localtime(&n));printf("\r%s",b);}}

----

#include<time.h>
#include<stdio.h>
main(){for(;;){time_t n=time(0);char b[9];strftime(b,9,"%H:%M:%S",localtime(&n));printf("\r%s",b);}}

ดูเหมือนว่า (สำหรับฉัน) คุณสามารถลบได้time.hเช่นกัน สิ่งนี้จะลบประเภท time_t ดังนั้นคุณต้องสร้าง n เป็น int แทน ซึ่งสามารถทำได้โดยการประกาศมันนอกหลัก (ชอบn;main...) intซึ่งขจัดความจำเป็นในการที่ คุณสามารถกำจัดcharด้วยเคล็ดลับเดียวกัน: b[9];main.... ตอนนี้ทั้งคู่เป็นแบบ int แต่ก็ยืดหยุ่นพอ
nmjcman101

ว้าวขอบคุณมากฉันไม่รู้ว่ามันจะใช้ได้ ขอบคุณ
สเตฟาน

โปรดหยุดฉันหากคุณต้องการเล่นกอล์ฟด้วยตัวคุณเอง แต่ฉันก็นำเอาสิ่งที่ทำออกมาstrftime...และb[9]พิมพ์ลงไปในนี้ด้วยprintf("\r%d:%d:%d",(n/3600)%60-29,(n/60)%60,n%60); ฉันไม่แน่ใจว่าจำเป็นต้องใช้ parens หรือไม่ นอกจากนี้คุณสามารถถอดชุด{}โดยใส่เครื่องหมายจุลภาคระหว่างคำสั่งของคุณดังนั้นมันfor(;;)a,b,c;
nmjcman101

1
วงเล็บเหล่านี้น่ารำคาญ (n/60)%60, อย่างจริงจัง?
Anatolyg

1
คุณสามารถบันทึก 1 ไบต์ได้โดยประกาศnเป็นพารามิเตอร์ของmainพูดmain(n)แทนn;main()
Karl Napf


2

ปาสกาล 61 ไบต์

uses sysutils;begin while 1=1do write(#13,timetostr(now))end.

ปาสกาลฟรีมีช่วงเวลาที่ดีในหน่วย SysUtils Ungolfed:

uses
  sysutils;
begin
  while 1=1 do
    write(#13, timetostr(now));
end.

2

C 65 (ก่อนหน้า 64) ไบต์

รับประกันว่าจะทำงานบนเครื่อง Linux :)

@ มาร์โกขอบคุณ!

f(){while(1){system("date +%T");usleep(100000);system("clear");}}

1

เป็นกลุ่ม 26 ไบต์

qqS<C-r>=strftime("%T")<CR><esc>@qq@q

สิ่งนี้จะสร้างมาโครแบบเรียกซ้ำ (เช่นวนซ้ำแบบนิรันดร์) ซึ่งจะลบข้อความทั้งหมดในบรรทัดปัจจุบันและแทนที่ด้วยเวลาปัจจุบัน




1

เยลลี่ขนาด 8 ไบต์

13Ọ7ŒTȮß

13Ọ        chr(13), carriage return
   7ŒT     time string, which extends the previous character
      Ȯ    print
       ß   call the whole link again

ลองออนไลน์!

การขึ้นบรรทัดใหม่ไม่ทำงานออนไลน์และฉันไม่สามารถล่ามให้ทำงานดังนั้นมันยังไม่ทดลอง แต่มันทำงานได้อย่างที่คาดไว้เมื่อฉันใช้ตัวอักษรที่พิมพ์ได้แทน CR


1

ForceLang, 123 ไบต์

def s set
s d datetime
s z string.char 8
s z z.repeat 16
label 1
io.write z
io.write d.toTimeString d.now()
d.wait 9
goto 1

datetime.toTimeStringได้รับการสนับสนุนในการนำไปใช้อ้างอิงโดย Java DateFormat.getTimeInstance()ซึ่งขึ้นอยู่กับโลแคลดังนั้นคุณสามารถตั้งค่าโลแคลระบบเริ่มต้นเป็นหนึ่งที่ใช้เวลา 24 ชั่วโมง


1

PowerShell, 30 28 24 20 ไบต์

เปลี่ยนภูมิภาคของคอมพิวเตอร์ของฉันเป็นเยอรมนีตามความคิดเห็นของraznagulเพื่อประหยัด 4 ไบต์ :)

for(){date -F T;cls}

เวอร์ชันก่อนหน้านี้ที่ใช้งานได้ในทุกภาษา

for(){date -F h:m:s;cls}


0

แบตช์ 36 ไบต์

@set/p.=␈␈␈␈␈␈␈␈%time:~0,8%<nul
@%0

ไหนหมายถึงอักขระ ASCII BS นี้ (รหัส 8)


0

แร็กเก็ต, 71 ไบต์

(require srfi/19)(let l()(display(date->string(current-date)"↵~3"))(l))

ที่จริงคือ CR (hex 0d) Hex dump ของโปรแกรมสำหรับการชี้แจงเพิ่มเติม (สังเกตเห็นไบต์ที่ตำแหน่ง hex 4d):

00000000  28 72 65 71 75 69 72 65  20 73 72 66 69 2f 31 39  |(require srfi/19|
00000010  29 28 6c 65 74 20 6c 28  29 28 64 69 73 70 6c 61  |)(let l()(displa|
00000020  79 28 64 61 74 65 2d 3e  73 74 72 69 6e 67 28 63  |y(date->string(c|
00000030  75 72 72 65 6e 74 2d 64  61 74 65 29 22 0d 7e 33  |urrent-date)".~3|
00000040  22 29 29 28 6c 29 29                              |"))(l))|
00000047

ใช้SRFI / 19รวมอยู่ในการกระจายแร็กเก็ต (current-date)รับวันที่และเวลาท้องถิ่นปัจจุบัน date->stringรูปแบบ~3คือ ISO-8601 รูปแบบชั่วโมงนาทีวินาที (let l () ... (l))ในการวนวนไม่สิ้นสุดสำนวน (require srfi/19)โหลดsrfi/19โมดูล



0

TI-Basic, 40 ไบต์

(ใน TI-BASIC อักขระจำนวนมากคือ 2 โทเค็นโทเค็นและเครื่องหมายโคลอนที่จุดเริ่มต้นของบรรทัดคือ 0 ไบต์พิเศษ)

:ClrHome
:Output(1,6,":
:setTmFmt(24
:While 1
:Output(1,1,getTmSrr(0
:getTime
:Output(1,7,Ans(3
:End

0

R, 41 ไบต์

repeat{cat(format(Sys.time(),"%T"),"\r")}

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.