MATLAB - 89 ไบต์
a=@()hour(now);disp('Legen... wait for it...');while(mod(a()+1,24)~=a())end;disp('dary!')
สวยอธิบายตนเอง ขั้นแรกให้สร้างตัวจัดการฟังก์ชันเพื่อจับชั่วโมงปัจจุบันของนาฬิการะบบ จากนั้นแสดงLegen... wait for it...
ด้วย carriage return และจากนั้นเราจะเข้าไปในwhile
ลูปที่เราทำการตรวจสอบเพื่อดูว่าชั่วโมงปัจจุบันที่เพิ่มด้วย 1 นั้นไม่เท่ากับชั่วโมงปัจจุบัน ถ้าเป็นเช่นนั้นให้วนซ้ำ จนกว่าจะถึงเวลาทันทีเมื่อชั่วโมงถัดไปเกิดขึ้นเราจะแสดงdary!
และการขึ้นบรรทัดใหม่จะเกิดขึ้นหลังจากนั้น
ชั่วโมงของ MATLAB ขึ้นอยู่กับการจัดทำดัชนี 24 ชั่วโมงดังนั้นการmod
ดำเนินการด้วยฐาน 24 จึงจำเป็นต้องมีการจัดการการรั่วไหลจาก 23.00 น. (23:00 น.) ถึงเที่ยงคืน (00:00)
หมายเหตุเล็กน้อย
hour
ฟังก์ชั่นที่ต้องใช้เวลาในกล่องเครื่องมือทางการเงินซีรี่ส์ now
ฟังก์ชั่นไม่อยู่ภายใต้ข้อ จำกัด นี้ แต่จะดึงเอาวันและเวลาปัจจุบันเป็นหมายเลขซึ่งhour
ทำให้ใช้ในการคำนวณชั่วโมงปัจจุบัน
ต้องการใช้งานใน Octave หรือไม่?
แน่นอน! เนื่องจากอ็อกเทฟไม่มีกล่องเครื่องมือนี้เราเพียงแค่ต้องปรับเปลี่ยนhour
ฟังก์ชั่นเพื่อให้สามารถเรียกใช้datevec
ซึ่งส่งคืนเวกเตอร์ 6 องค์ประกอบ - หนึ่งรายการสำหรับแต่ละปีเดือนวันชั่วโมงนาทีและวินาที คุณเพียงแค่ต้องแยกองค์ประกอบที่สี่ของผลลัพธ์:
a=@()datevec(now)(4);disp('Legen... wait for it...');while(mod(a()+1,24)~=a())end;disp('dary!')
ตัวละครเพิ่มเติมทำให้การแก้ปัญหาไปถึง 98 ไบต์ แต่คุณจะสามารถเรียกใช้ใน Octave หมายเหตุการทำดัชนีแบบแทนที่ไม่มีตัวแปรชั่วคราวในตัวจัดการฟังก์ชัน
ไม่มีกล่องเครื่องมือซีรี่ส์เวลาทางการเงินหรือไม่
หากคุณต้องการเรียกใช้งานใน MATLAB โดยไม่มีชุดเครื่องมือการเงินเวลาเพราะคุณไม่สามารถจัดทำดัชนีเป็นตัวแปรได้ทันทีโดยไม่ต้องใช้งานชั่วคราวสิ่งนี้จะใช้เวลาเขียนไบท์อีกเล็กน้อย:
disp('Legen... wait for it...');h=datevec(now);ans=h;while(mod(h(4)+1,24)~=ans(4)),datevec(now);end;disp('dary!');
นี่เป็นครั้งแรกที่ได้รับเวลาปัจจุบันและวันที่และร้านค้าลงในตัวแปรเช่นเดียวกับการจัดเก็บนี้ลงในตัวแปรอัตโนมัติที่เรียกว่าh
ans
หลังจากนั้นเราจะวนซ้ำและตรวจสอบว่าชั่วโมงปัจจุบันไม่เท่ากับชั่วโมงถัดไป ในการทำซ้ำแต่ละครั้งเราจะอัปเดตตัวแปรอัตโนมัติด้วยเวลาและวันที่ปัจจุบัน ทันทีที่ชั่วโมงถัดไปตรงกับเวลาและวันที่ปัจจุบันเราจะแสดงส่วนสุดท้ายของสตริงและออก นี่จะเพิ่มจำนวนไบต์เป็น 114
โปรดทราบว่าคุณไม่สามารถลองออนไลน์ได้ นักแปลระดับแปดเสียงทางออนไลน์จะมีการ จำกัด เวลาเปิดใช้งานเมื่อโค้ดทำงานและเนื่องจากนี่เป็นการwhile
วนซ้ำที่รอให้ชั่วโมงถัดไปเกิดขึ้นคุณจะได้รับการหยุดพักชั่วคราวขณะรอให้โค้ดทำงาน สิ่งที่ดีที่สุดที่คุณสามารถทำได้คือรันบนเครื่องของคุณเองและตรวจสอบว่ามันใช้งานได้