मेरे पास काम पर एक सहयोगी है जो हर मंगलवार और गुरुवार को घर से काम करता है। लगभग 8:00 बजे वह हमें निम्नलिखित पाठ के साथ एक संदेश भेजता है:
हेलो आज मैं घर से काम कर रहा हूँ
ऐसा करने के बोझ से राहत देने के लिए वह हर दिन घर पर रहता है, हम उसके लिए इस कार्य को स्वचालित करना चाहेंगे।
चुनौती
कोड का एक टुकड़ा संभव के रूप में कुछ बाइट्स में लिखें:
- वर्तमान समय प्राप्त करता है: आपका कोड वर्तमान वर्ष, माह (1-12), महीने का दिन (1-31), घंटा (0-23) और मिनट (0-59) और सप्ताह का दिन मान प्राप्त कर सकता है (आप चुन सकते हैं कि क्या यह संख्या 0 या 1 से शुरू होती है, और यदि 0/1 का अर्थ रविवार, सोमवार या किसी अन्य दिन है); वैकल्पिक रूप से आप इस तरह के रूप में एक संरचना प्राप्त हो सकता है
Date
,DateTime
,Calendar
या किसी अन्य समय से संबंधित संरचना, अपनी भाषा यह अनुमति देता है। आप चाहें तो तारीख के साथ एक तार भी प्राप्त कर सकतेyyyyMMddHHmm
हैं, या तिथि और समय के लिए दो अलग-अलग तार, और फिर सप्ताह के दिन के साथ एक पूर्णांक। स्वतंत्र महसूस करना। - रिटर्न दो लगातार truthy और falsey मूल्यों, संदेश काम चैट करने के लिए नहीं भेजा जाना चाहिए अगर या संकेत है।
नियम
- कोड के इस टुकड़े को समय-समय पर ग्रहण किया जाता है। सटीक आवधिक अप्रासंगिक है, फिर भी।
- यदि सप्ताह का दिन मंगलवार या गुरुवार है और समय 10 मिनट (7:50 से 8:10 तक) के एक त्रुटि मार्जिन के साथ 8:00 पूर्वाह्न है, तो सत्य मान लौटाया जाना चाहिए।
- सत्य मान तभी भेजा जाना चाहिए, जब यह पहली बार कोड निर्दिष्ट दिन के लिए उन घंटों के बीच लागू किया गया हो। हम बॉट को एक ही संदेश को कई बार एक पंक्ति में नहीं भेजना चाहते हैं। जिस तरह से आप इस प्रतिबंध का प्रबंधन करते हैं, वह पूरी तरह आपके ऊपर होगा।
- आपका कोड बार-बार निष्पादित एक स्वतंत्र कार्यक्रम हो सकता है या यह हमेशा चलने वाले बड़े कोड का हिस्सा हो सकता है। आपकी पंसद।
- आप मान सकते हैं कि कोड के निष्पादन के बीच कोई रिबूट नहीं होगा।
- आप मान सकते हैं कि तारीख हमेशा सही होगी।
- आपके कोड के बारे में स्पष्टीकरण और विशेष रूप से दृढ़ता को प्राप्त करने के लिए उपयोग की जाने वाली विधि के बारे में प्रोत्साहित किया जाता है।
उदाहरण
(Week starts on Monday: 1, the following invokations will be made in succession)
2018,08,27,08,00,1 = falsey (not Tuesday or Thursday)
2018,08,28,07,45,2 = falsey (out of hours)
2018,08,28,07,55,2 = truthy (first time invoked this day at the proper hours)
2018,08,28,08,05,2 = falsey (second time invoked this day at the proper hours)
2018,08,28,08,15,2 = falsey (out of hours)
2018,08,29,08,00,3 = falsey (not Tuesday or Thursday)
2018,08,29,18,00,3 = falsey (not Tuesday or Thursday)
2018,08,30,07,49,4 = falsey (out of hours)
2018,08,30,07,50,4 = truthy (first time invoked this day at the proper hours)
2018,08,30,07,50,4 = falsey (second time invoked this day at the proper hours)
2018,08,30,08,10,4 = falsey (third time invoked this day at the proper hours)
2018,08,30,08,11,4 = falsey (out of hours)
2018,09,04,08,10,2 = truthy (first time invoked this day at the proper hours)
यह कोड-गोल्फ है , इसलिए प्रत्येक भाषा की जीत के लिए सबसे छोटा कोड हो सकता है!
YYYYmmdd
और समय भी HHss
?