बैश, 78 बाइट्स (बीएसडी उपयोगिता का उपयोग करके) या 79 बाइट्स (गैर-बीएसडी भी)
यह @DigitalTrauma और @ hvd का अच्छा 71-बाइट बैश समाधान से थोड़ा लंबा है, लेकिन मुझे आधार 60 में संख्याओं का उपयोग करने का विचार पसंद आया; अगर कोई इसे थोड़ा और नीचे कर सकता है तो मैं उत्सुक हूं।
बीएसडी-मानक जेट उपयोगिता के साथ:
jot '-wx=`dc<<<60do3^%d+n`;((`dc<<<$x++'$1'-n`))||tr \ :<<<${x:3}' 86400 0|sh
अधिक सार्वभौमिक रूप से उपलब्ध seq उपयोगिता के साथ:
seq '-fx=`dc<<<60do3^%.f+n`;((`dc<<<$x++'$1'-n`))||tr \ :<<<${x:3}' 0 86399|sh
यह विचार 0 से 83699 तक संख्याओं को उत्पन्न करने और उन्हें 60 के बेस में बदलने के लिए dc का उपयोग करना है। dc के बेस -60 आउटपुट में "अंक" 00 से 59 तक 2-अंकीय संख्याएँ हैं, जिसमें रिक्त स्थान "अंक" को अलग करते हैं, इसलिए यह लगभग वांछित प्रारूप में 00 00 00 से 23 59 59 तक सभी वांछित समयों को सूचीबद्ध करता है।
यदि आप सचमुच इसे बाहर ले जाते हैं, हालांकि, 60 ^ 2 से नीचे की संख्या आधार 60 में 3-अंकीय संख्या नहीं है, इसलिए प्रारंभिक 00 या 00 00 गायब है। इस कारण से, मैं वास्तव में 60 ^ 3 से 60 ^ 3 + 83699 तक संख्या उत्पन्न कर रहा हूं; यह सुनिश्चित करता है कि उत्पन्न सभी संख्याएँ आधार ६० में ४ अंकों की लंबी हैं। यह तब तक ठीक है जब तक मैं अंततः अतिरिक्त पहले अंक (०१) को फेंक नहीं देता जिसकी आवश्यकता नहीं है।
इसलिए, एक बार वांछित समय उत्पन्न हो जाने के बाद, मैं बस प्रत्येक चौगुनी को ०१ ०० ०० ०० से ०१ २३ ९ ५ ९ ५ ९ तक ले जाता हूं, अंतिम तीन संख्याओं को जोड़ता हूं और तर्क $ १ को घटाता हूं। यदि वह 0 है, तो मैं 3 अक्षर से ("01" को दूर फेंक) चतुष्कोण में सब कुछ लेता हूं, रिक्त स्थान को कॉलन में परिवर्तित करने के लिए ट्रे का उपयोग करता हूं, और परिणाम प्रिंट करता हूं।