वी हैड ए क्वेश्चन वन्स ओन ओनली फेल ऑन संडे


39

हमारे द्वारा प्रेरित एक बार एक इकाई परीक्षण किया गया था जो केवल रविवार को विफल हो गया था , एक कार्यक्रम या फ़ंक्शन लिखें जो कुछ भी नहीं करता है लेकिन रविवार होने पर एक त्रुटि फेंक देता है, और किसी भी अन्य दिन पर अनुग्रह से बाहर निकलता है।

नियम:

  • STDERR या आपकी भाषा के समकक्ष प्रिंट करने के लिए सामान्य IO विधियों के माध्यम से इनपुट या आउटपुट का उपयोग नहीं करना । यदि यह आपकी त्रुटि का उप-उत्पाद है तो आपको STDOUT पर प्रिंट करने की अनुमति है।
  • एक फ़ंक्शन गैर-रविवार को एक मूल्य वापस कर सकता है जब तक कि वह कुछ भी प्रिंट नहीं करता है
  • आपका कार्यक्रम किसी भी समय क्षेत्र, या स्थानीय समय क्षेत्र से रविवार का उपयोग कर सकता है, जब तक यह सुसंगत है।
  • एक त्रुटि एक ऐसी चीज है जो कार्यक्रम को असामान्य रूप से समाप्त कर देती है , जैसे कि शून्य त्रुटि से विभाजित होना या एक असिंचित चर का उपयोग करना। इसका मतलब यह है कि यदि किसी भी कोड को त्रुटियों के भाग के बाद जोड़ा जाना है, तो उसे रविवार को निष्पादित नहीं किया जाएगा।
    • आप उन कथनों का भी उपयोग कर सकते हैं जो मैन्युअल रूप से एक त्रुटि बनाते हैं, पायथन के समकक्ष raise
    • संकलन करते समय इसमें रनटाइम एरर, सिंटैक्स एरर और एरर शामिल हैं (इसके साथ शुभकामनाएं!)
  • एक त्रुटि पर कुछ संकेत होना चाहिए जो इसे कोई त्रुटि नहीं होने से अलग करता है
  • यह , इसलिए प्रत्येक भाषा में सबसे छोटा बायटेकाउंट जीतता है!

मुझे उत्तरों की जाँच के लिए रविवार का इंतज़ार करना होगा;)


2
"एक प्रोग्राम या फ़ंक्शन लिखें जो कुछ भी नहीं करता है, लेकिन रविवार को एक त्रुटि फेंकता है, और किसी अन्य दिन इनायत से बाहर निकलें", क्या आपका मतलब है कि जब भी इसे रविवार को चलाया जाता है तो इसे विफल होना चाहिए, या क्या आपका मतलब है कि कम से कम होना चाहिए एक संभावना यह एक रविवार विफल रहता है। इसे स्पष्ट करने के लिए, यदि यह रविवार को दोपहर 2 बजे ही विफल हो जाता है, लेकिन रविवार दोपहर 3 बजे नहीं, क्या यह ठीक है?
ब्रोमाइंड

5
यह और भी अच्छा होता अगर शनिवार का इस्तेमाल किया गया होता। आप इसे "सैटरडे नाइट एरर" कह सकते हैं और यहां तक ​​कि प्रश्न के लिए कुछ समायोजित गीत के बोल में भी काम कर सकते हैं।
आरोन


1
यह आपके प्रश्न से स्पष्ट नहीं है कि त्रुटि क्या है। जब तक यह समाप्त नहीं हो जाता, तब तक मैं बंद कर रहा हूं।
गेहूं जादूगर

3
वास्तव में नहीं ... हम नियमित आउटपुट से किसी त्रुटि के आउटपुट को कैसे अलग कर सकते हैं। क्या print "error"कोई त्रुटि है? जोड़ा पैराग्राफ वास्तव में कुछ भी स्पष्ट नहीं करता है।
गेहूं जादूगर

जवाबों:



18

PHP 7, 12 बाइट्स

1%date("w");

PHP 7 पर यह DivisionByZeroरविवार को एक प्रकार का अपवाद फेंकता है । यदि एचएचवीएम का उपयोग करके व्याख्या की जाती है तो ऐसा ही होता है ।

PHP 5 में यह stderrरविवार को एक चेतावनी (पर ) प्रदर्शित करता है :

PHP Warning:  Division by zero in Command line code on line 1

किसी भी PHP संस्करण पर, यह सप्ताह के अन्य दिनों में कुछ भी प्रदर्शित नहीं करता है।

CLI का उपयोग करके चलाएं:

php -r '1%date("w");'

या इसे ऑनलाइन आज़माएं!

उद्धरण ( 1%date(w);) को अलग करके दो और बाइट्स निचोड़ा जा सकता है लेकिन यह एक नोटिस को ट्रिगर करता है (जिसे ठीक से सेट करके दबाया जा सकता error_reporting = E_ALL & ~E_NOTICEहै php.ini)।


मेरा मानना ​​है कि आपको (शीर्षक में) यह निर्दिष्ट करना होगा कि यह उत्तर केवल और केवल PHP7 + और HHVM के लिए है, क्योंकि PHP5.6 और किसी भी समस्या के बिना निम्न निकास है। चेतावनियाँ त्रुटियां नहीं हैं और कोड के निष्पादन को रोकना नहीं है। यदि आप करते हैं 1%date("w");echo "Alive!", तो यह PHP7 + और HHVM में रुकेगा, लेकिन PHP 4 के बाद से अन्य सभी संस्करणों में नहीं।
इस्माईल मिगुएल

@IsmaelMiguel प्रश्न किसी भी मुद्रण को त्रुटि के रूप में मानक त्रुटि में वर्गीकृत करता है, इसलिए इस मामले में एक चेतावनी काफी अच्छी है।
कृपया

1
प्रश्न का हवाला देते हुए: "एक त्रुटि एक ऐसी चीज है जो कार्यक्रम को असामान्य रूप से समाप्त कर देती है , जैसे कि शून्य त्रुटि से विभाजित होना या एक असिंचित चर का उपयोग करना। इसका मतलब है कि यदि उस त्रुटि के बाद किसी भी कोड को जोड़ा जाना था, तो यह नहीं होगा। रविवार को अंजाम दिया गया। ” यह एक चेतावनी के साथ नहीं होता है।
इस्माईल मिगुएल

@IsmaelMiguel जिस पैराग्राफ को आप उद्धृत कर रहे हैं, वह एक घंटे से भी कम समय पहले प्रश्न में जोड़ा गया था।
शाम

1
एक पुराने संस्करण का हवाला देते हुए, वह टिप्पणी के समय जो मैंने लिखा था: "[...] एक प्रोग्राम या फ़ंक्शन लिखें जो कुछ भी नहीं करता है लेकिन रविवार होने पर एक त्रुटि को फेंक देता है, और किसी अन्य दिन पर इनायत से बाहर निकलें । "। इस लाइन के खिलाफ एक चेतावनी है क्योंकि PHP इनायत से बाहर निकल जाएगा। एक त्रुटि एक घातक त्रुटि या एक वाक्यविन्यास त्रुटि होगी। 0. PHP 5.6 और इससे अधिक पुराने विभाजन की चेतावनी इस चुनौती के लिए मान्य नहीं है।
इस्माइल मिगुएल

9

PHP, 15 बाइट्स

<?@date(w)?:\n;

डिफ़ॉल्ट सेटिंग्स मान लेता है ।

रविवार को आउटपुट

Fatal error: Undefined constant 'n' on line 1

इसे ऑनलाइन आज़माएं!


2
ध्यान दें कि इस उत्तर के लिए PHP 5.3+ की आवश्यकता है। ||\nइसके बजाय एक विकल्प हो सकता है ?:\n
इस्माइल मिगुएल

8

जावा 8, 69 43 34 बाइट्स

v->1/new java.util.Date().getDay()

-26 बाइट्स @ OlivierGrégoire को धन्यवाद ।
-9 बाइट्स @ धन्यवाद का शुक्रिया

स्पष्टीकरण:

इसे यहाँ आज़माएँ।

  • v->{...}( अप्रयुक्त Void nullपैरामीटर ) एक बाइट से छोटा है ()->{...}(कोई पैरामीटर नहीं)।
  • new java.util.Date().getDay()रविवार-शनिवार के लिए 0-6 लौटेगा, इसलिए मान 0 होने पर त्रुटि 1/...देगा java.lang.ArithmeticException: / by zero, जो केवल रविवार को होता है।


@ OlivierGrégoire आह, java.util.Date()सप्ताह के दिन प्राप्त करने के लिए एक विधि है .. और यह रविवार के लिए 0 भी है .. मुझे यकीन नहीं हुआ कि मैं कैसे चूक गया। : एस
केविन क्रूज़सेन

हाँ, आमतौर पर पुराने वर्गों में छोटे नामों में सभी कार्यक्षमता होती है। ;-)
Olivier Grégoire

1
क्या यह 34 बाइट के लिए वैध है? इसे ऑनलाइन आज़माएं!
नील

@ यह आपके द्वारा पोस्ट किए गए समय पर मान्य नहीं था, लेकिन एक घंटे से भी कम समय के बाद वैध हो गया। ;-) यह मेरा पहला विचार था, हालांकि ...
ओलिवियर ग्राएगोइरे

7

पायथन 3 , 33 बाइट्स

import time
"Su"in time.ctime()>q

इसे ऑनलाइन आज़माएं!

पायथन 3 , 50 बाइट्स

from datetime import*
datetime.now().weekday()>5>q

इसे ऑनलाइन आज़माएं!

सहेजा गया ~ 3 बाइट्स रॉड के लिए धन्यवाद ।


1
@Rod क्यों नहीं "Su"in time.ctime()>q(मैं इस एक के साथ संपादन कर रहा था)?
मिस्टर एक्सकोडर

मैं इसे बहुत समझ नहीं सकता। यह कैसे काम करता है?
पचोलिक

@pacholik "Su"in time.ctime()जाँच करता है कि क्या वर्तमान दिन रविवार है। यदि यह गलत है, तो इस >qभाग का मूल्यांकन बिल्कुल नहीं किया जाता है और सब कुछ आसानी से निकल जाता है। लेकिन अगर यह सच है, तो असमानता के दूसरे हिस्से का मूल्यांकन किया जाता है, और चूंकि qइसे परिभाषित नहीं किया गया है, इसलिए यह एक फेंक देगा NameError
श्री एक्सकोडर

1
@pacholik संपादित करें: मुझे नहीं लगता कि मैं गलत हूं। दक्षता उद्देश्यों के लिए, यदि पहला भाग गलत है, तो पायथन अंतिम भाग का मूल्यांकन करने की जहमत नहीं उठाता है। हालांकि, यह परीक्षण करने के लिए मुझे रविवार तक इंतजार करना होगा। ( मुझे लगता है ) प्रदर्शन
श्री एक्सकोडर

3
@pacholik ध्यान दें कि पायथन चेन बूलियन ऑपरेटर है, इसलिए इसके बराबर है ("Su" in time.ctime()) and (time.ctime() > q)
user202729

6

पायथ , 8 7 बाइट्स

 l-6.d9

इसे ऑनलाइन आज़माएं!

व्याख्या

    .d9 # Get the current day of week (0 = Monday, 6 = Sunday)
  -6    # Subtract 6 from the day
 l      # Try to calculate the log base 2 of the result of the previous operation raising a "ValueError: math domain error" on sundays
        # there is an extra space at the start, to supress the output on the other days

यह अभी भी अमान्य है। आपका आउटपुट ( त्रुटि से1.0 उत्पन्न नहीं है )। ओपी ने स्पष्ट रूप से कहा कि वे इसकी अनुमति नहीं देते हैं। आप अपने कोड में किसी एकल स्थान को पहले से तय कर सकते हैं, हालांकि
श्री एक्सकोडर

लेकिन आपको STDOUT तक आउटपुट की अनुमति नहीं है जब तक कि यह रविवार न हो, और आप STDOUT को आउटपुट करें।
श्री एक्सकोडर

@ Mr.Xcoder सही है। गैर-रविवार को कुछ भी आउटपुट नहीं किया जाना चाहिए
जो किंग

@ जोकिंग मैंने इस नियम को पूरी तरह से छोड़ दिया, अब तय किया गया
रॉड

6

हास्केल + डाटा.डेट्स , 55 बाइट्स

import Data.Dates
succ.dateWeekDay<$>getCurrentDateTime

इसे ऑनलाइन आज़माएं!

यह इस तथ्य का उपयोग करता है कि रविवार सप्ताह का अंतिम दिन है। dateWeekDayसप्ताह के दिन को एक WeekDayप्रकार के रूप में लौटाता है , जिसे बस के रूप में परिभाषित किया गया है

data WeekDay = Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday

WeekDayका एक उदाहरण है Enum, इस प्रकार हम उपयोग कर सकते हैं succऔर predउत्तराधिकारी या एक काम करने के दिन के पूर्ववर्ती प्राप्त करने के लिए, जैसे succ Mondayपैदावार Tuesday

हालाँकि, Sundayअंतिम एनम प्रविष्टि है, इसलिए succ Sundayनिम्न त्रुटि में कॉलिंग परिणाम:

fail_on_sunday.hs: succ{WeekDay}: tried to take `succ' of last tag in enumeration
CallStack (from HasCallStack):
  error, called at .\Data\Dates.hs:56:34 in dates-0.2.2.1-6YwCvjmBci55IfacFLnAPe:Data.Dates

संपादित करें 1: -3 बाइट्स के लिए nimi के लिए धन्यवाद!
2 संपादित करें: -11 बाइट्स अब फ़ंक्शन की अनुमति है।


पूर्ण कार्यक्रम: 88 81 74 69 66 बाइट्स

import Data.Dates
main=pure$!succ.dateWeekDay<$>getCurrentDateTime

इसे ऑनलाइन आज़माएं!

pureइसके परिणामस्वरूप WeekDayIO मोनाड को वापस उठाने की आवश्यकता है । हालांकि, हास्केल देखता है कि मूल्य कार्यक्रम द्वारा किसी भी तरह से आउटपुट नहीं है, इसलिए जैसा कि आलसी है, अभिव्यक्ति का मूल्यांकन नहीं किया जाता है, इसलिए रविवार को भी कार्यक्रम विफल नहीं होगा। यही कारण है कि है $!, जरूरत है जो बलों मूल्यांकन भले ही हास्केल सामान्य रूप से अभिव्यक्ति का मूल्यांकन नहीं होता।


पिछला दृष्टिकोण Data.Time: 127 124 बाइट्स

import Data.Time.Clock
import Data.Time.Calendar.WeekDate
c(_,_,d)|d<7=d
main=getCurrentTime>>=(pure$!).c.toWeekDate.utctDay

इसे ऑनलाइन आज़माएं! ये कुछ प्रभावशाली आयात हैं। शुक्रवार को विफलता का परीक्षण करने के d<7लिए उदाहरण के d/=5लिए बदलें । निम्नलिखित अपवाद के साथ विफल होता है Non-exhaustive patterns in function c:।


1
main=pure$!succ.dateWeekDay<$>getCurrentDateTime। और, जैसा कि फ़ंक्शन की अनुमति है, आप ड्रॉप कर सकते हैं main=
निमि

@ नमि धन्यवाद! मैं No using input or showing output through the usual IO methodsनियम के कारण, हालांकि फ़ंक्शन के बारे में निश्चित नहीं हूं । जहाँ तक मैं देख रहा हूँ, एक फ़ंक्शन का उपयोग करने के परिणामस्वरूप गैर-रविवार को आउटपुट मिलेगा, भले ही यह एक IO- एक्शन में लिपटा हो।
लाकोनी

हो सकता है कि आप सही हों, लेकिन दूसरी ओर एक पूर्ण प्रोग्राम में एक एक्जिट कोड होता है, जो एक मानक विधि भी है।
निमि

... चुनौती नियम अब कार्यों को गैर-रविवार को मान वापस करने की अनुमति देते हैं जब तक कि वे प्रिंट नहीं करते हैं।
निमि

@nimi सूचना के लिए धन्यवाद।
लाकोनी

5

05AB1E , 45 44 बाइट्स

जैसा कि 05AB1E के पास सप्ताह के दिन प्राप्त करने के लिए बिल्ट नहीं है, मैंने इसकी गणना करने के लिए ज़ेलर के नियम का उपयोग किया है।

रविवार के मामले में स्टाइडर के लिए एक नई रेखा प्रिंट करता है (टीआईओ पर डीबग दृश्य में अवलोकन योग्य)

žežf11+14%Ì13*5÷žgžf3‹-т%D4÷žgт÷©4÷®·(O7%i.ǝ

इसे ऑनलाइन आज़माएं!

व्याख्या

सामान्य इस्तेमाल किया सूत्र है
DoW = d + [(13*(m+1))/5] + y + [y/4] + [c/4] - 2*c
कहाँ DoW=day of week, d=day, m=month, y=last 2 digits of year, c=centuryऔर और कोष्ठक में अभिव्यक्ति ( []) गोल नीचे है।

सूत्र में उपयोग किया जाने वाला प्रत्येक महीना एक संख्या के अनुरूप होता है, जहाँ Jan=13,Feb=14,Mar=3,...,Dec=12
जैसा कि हमारे पास वर्तमान माह अधिक सामान्य प्रारूप में होता है, Jan=1,...,Dec=12 हम सूत्र का उपयोग करके महीने को परिवर्तित करते हैं
m = (m0 + 11) % 14 + 1

मार्च का पहला दिन होने के रूप में, जनवरी और फरवरी पिछले वर्ष के होते हैं, इसलिए निर्धारण की गणना yबन जाती है
y = (year - (m0 < 3)) % 100

DoWहमें प्राप्त होने वाला अंतिम मूल्य एक int है जहां 0=Sat,1=Sun,...,6=Fri
यदि परिणाम सही है तो अब हम स्पष्ट रूप से एक त्रुटि फेंक सकते हैं।


11
05AB1E जावा से हार रहा है? मैं जो कुछ जानता हूं वह सब झूठ है
कामिल दकरी

5

जावास्क्रिप्ट, 23 बाइट्स

Date().slice(1)>'um'&&k

पूरा कार्यक्रम।

चर kको परिभाषित नहीं किया जाना चाहिए।

रिक हिचकॉक द्वारा जावास्क्रिप्ट, 20 बाइट्स

/Su/.test(Date())&&k

जावास्क्रिप्ट, 19 बाइट्स अप्सिलर्स द्वारा

Date().match`Su`&&k

1) आप शामिल करना भूल गए _=>; इसके बिना यह एक स्निपेट है जिसे डिफ़ॉल्ट रूप से अनुमति नहीं है। 2) यह falseहर दूसरे दिन आउटपुट देता है जब इसे कुछ भी आउटपुट नहीं करना चाहिए।
शैगी

6
1) यह एक पूर्ण कार्यक्रम है, जिसे ओपी द्वारा अनुमति दी गई है। 2) यदि आप इसे एक प्रोग्राम के रूप में चलाते हैं, तो कोई आउटपुट नहीं है
l4m2

3
/Su/.test(Date())&&k20 बाइट्स के लिए।
रिक हिचकॉक

1
new Dateसंस्करण 25 बाइट्स(new Date/864e5%7|0)-3||p
l4m2

3
@RickHitchcock द्वारा समाधान के matchबजाय टेम्पलेट-टैग निष्पादन द्वारा एक छोटा किया जा सकता है :Date().match`Su`&&k
अप्सिलर्स

5

VBA / VBScript, 22 20 बाइट्स

टेलर स्कॉट की बदौलत 2 बाइट्स बचाए।

a=1/(Weekday(Now)-1)

इसे तत्काल विंडो में चलाया जाना चाहिए। Weekday()7 (शनिवार) के माध्यम से 1 (रविवार) देता है इसलिए यह रविवार को शून्य त्रुटि से विभाजन बनाता है। अन्यथा, कोई आउटपुट नहीं।

त्रुटि संदेश


आपने मुझे एक घंटे के जवाब से हरा दिया - 19 बाइट्स:?1/(Weekday(Now)-1)
टेलर स्कॉट

1
@TaylorScott मैं भूल गया कि VBA के Nowबिना मान्य है, ()लेकिन मैं प्रिंट का उपयोग नहीं कर सकता क्योंकि मुझे लगता है कि जब तक कि यह त्रुटि नहीं हो जाती, तब तक सभी आउटपुट अस्वीकृत हैं। No using input or showing output through the usual IO methods, except to print to STDERR। फिर भी, 2 बाइट्स को बचाया।
इंजीनियर टोस्ट

1
मैंने सिर्फ VBScript समाधान के रूप में इन सटीक 20 बाइट्स को लिखा था, और फिर मैंने सोचा कि मैं देखूंगा कि क्या कोई मौजूदा वीबी-शैली भाषा पहले से ही प्रस्तुत की गई थी और यहां यह है। तो, यह VBScript और शायद अन्य VB- शैली भाषाओं के लिए भी काम करता है।

@EngineerToast मुझे लगता है कि आपको इसे VBScript के साथ पॉलीग्लॉट के रूप में चिह्नित करना चाहिए
टेलर स्कॉट

@TaylorScott मैंने पहले ऐसा नहीं किया है। क्या मैंने इसे सही किया?
इंजीनियर टोस्ट

4

रूबी, 15 बाइट्स

1/Time.now.wday

wdayरविवार को 0 पर लौटेगा, जिससे ZeroDivisionError: 0 त्रुटि से विभाजित होगा। उदाहरण के लिए 1/Time.new(2018,1,7).wday:।



3

jq, 42 अक्षर

(39 वर्ण कोड + 3 वर्ण कमांड लाइन विकल्प)

now|strftime("%w")|strptime("%d")|empty

बस यहां एक अलग दृष्टिकोण की कोशिश कर रहा है: महीने के दिन की संख्या (1..31) के रूप में पार्स सप्ताह दिन संख्या (0..6)।

नमूना रन:

bash-4.4$ TZ=UTC faketime 2018-01-06 jq -n 'now|strftime("%w")|strptime("%d")|empty'

bash-4.4$ TZ=UTC faketime 2018-01-07 jq -n 'now|strftime("%w")|strptime("%d")|empty'
jq: error (at <unknown>): date "0" does not match format "%d"

ध्यान दें कि jq केवल UTC तिथियों को संभालता है।

इसे ऑनलाइन आज़माएं!



3

VBA 18 बाइट्स

यह इनबिल्ट फंक्शन पर निर्भर करता है, जो date()एक दिन की संख्या में रहता है जो 1 रहता है यदि 7 से विभाजित किया गया है, तो यह ओएस और / या सीपीयू विशिष्ट हो सकता है।

a=1/(date mod 7-1)

यह VBA प्रोजेक्ट इमीडिएट विंडो में चलता है।


2
PPCG में आपका स्वागत है! सामान्य तौर पर, एक स्पष्टीकरण और एक ऑनलाइन संकलक / दुभाषिया की एक कड़ी की सराहना की जाती है।
फंतासी

@tfbninja - ठीक अद्यतन
JohnRC

और, यदि आवश्यक हो, कैसे उपयोग करने के लिए निर्देश, जैसे फ़ंक्शन कॉल या चर
21

अच्छा गोल्फ, बस के बारे में अन्य जवाब देखने के बाद खुद को पोस्ट करने के लिए किया गया था!
लालडॉ

3

आर , 31 बाइट्स 30 बाइट्स

if(format(Sys.Date(),'%u')>6)a

इसे ऑनलाइन आज़माएं!

रविवार को, गैर-रविवार को कोई आउटपुट नहीं Error: object 'a' not found

format(Sys.Date(),'%u')सबसे छोटा रास्ता मुझे सप्ताह के दिनों में मिल सकता था, यह सप्ताह के दिन के लिए एक चरित्र-वर्ग संख्या को आउटपुट करता है, रविवार के लिए 7 के साथ। हम एक संख्यात्मक 7 की तुलना कर सकते हैं, और अगर एक अपरिभाषित वस्तु का उपयोग करने का सच्चा प्रयास।

Giuseppe के लिए एक बाइट धन्यवाद बचा लिया!


>6एक बाइट कम है।
गिउसेप्पे

2

Ocaml, 46 बाइट्स

open Unix
let()=1/(gmtime(time())).tm_wday;()

और ओईएमएल REPL में, हम letऔर फाइनल को हटाकर बेहतर हासिल कर सकते हैं :():

$ open Unix;;1/(gmtime(time())).tm_wday;;<CR>

जो 41 बाइट्स (कैरिज रिटर्न के लिए 1 बाइट को मिलाकर) है।


1
PPCG में आपका स्वागत है!
लकोनी

1
क्या इस कोड को ऑनलाइन आज़माना संभव है ?
लकोनी

Mmh ... संकलित कमांड ओमेक्स cmcma <file> है, मैं नहीं जानता कि tio पर संकलित विकल्प कैसे दिया जाए। मैं इस शाम की जाँच करूँगा
ब्रॉमिंड

Tio एक (simili) REPL दुभाषिया का उपयोग करता है, इसलिए आपको दूसरी संभावना का उपयोग करना चाहिए। हालाँकि, ऐसा लगता नहीं है कि यूनिक्स लाइब्रेरी (या किसी भी कारण से इसे एक्सेस करने की अनुमति नहीं है)
ब्रॉमिंड


2

टीआई-बेसिक 84+, 23 बाइट्स

getDate
0/(1-dayOfWk(Ans(1),Ans(2),Ans(3

आवश्यकताएं दिनांक और समय आदेश, जो केवल 84+ और उच्चतर हैं।


2

MATL , 12 बाइट्स

vZ'8XOs309>)

रविवार को उत्पन्न त्रुटि है:

  • ओक्टेव पर चल रहा है:

    MATL run-time error: The following Octave error refers to statement number 9:  )
    ---
    array(1): out of bound 0
    
  • मतलाब पर चल रहा है:

    MATL run-time error: The following MATLAB error refers to statement number 9:  )
    ---
    Index exceeds matrix dimensions
    

व्यवहार उलटना (रविवार को छोड़कर किसी भी दिन त्रुटि), ~बाद में जोड़ें >

इसे ऑनलाइन आज़माएं!

व्याख्या

यह इस तथ्य का फायदा उठाता है कि

  • तार्किक अनुक्रमणिका के साथ खाली सरणी में अनुक्रमण falseमान्य है (और परिणाम एक खाली सरणी है, जो कोई आउटपुट नहीं पैदा करता है); जहाँ तक

  • अनुक्रमण trueएक त्रुटि का कारण बनता है क्योंकि सरणी में पहले प्रविष्टि का अभाव है।

टिप्पणी कोड:

v       % Concatenate stack. Gives empty array
Z'      % Push current date and time as a number
8XO     % Convert to date string with format 8: gives 'Mon', 'Tue' etc
s       % Sum of ASCII codes. Gives 310 for 'Sun', and less for others
309>    % Greater than 309? Gives true for 'Sun', false for others
)       % Index into the empty array
        % Implicit display. Empty arrays are not displayed (not even newline)

2

क्यू, 20 बाइट्स

if[1=.z.d mod 7;'e]

.zd वर्तमान तिथि को लौटाता है। mod वर्तमान तिथि का modulo करता है, जो एक int देता है। यदि दिनांक एक रविवार है, .zd mod 7 रिटर्न 1. यदि 1 = 1, (रविवार को), और त्रुटि 'ऑपरेटर के लिए उठाया जाता है' संक्षिप्तता के लिए त्रुटि सिर्फ ई वर्ण है।


3
PPCG में आपका स्वागत है!
मार्टिन एंडर

2

सी # (.NET कोर) , 55 54 48 बाइट्स

इसे ऑनलाइन आज़माएं!

झबरा के लिए धन्यवाद 1 बाइट बचाया

Emigna के लिए 5 बाइट का धन्यवाद सहेजा गया

केविन क्रूज़सेन को 1 बाइट धन्यवाद दिया

_=>{var k=1/(int)System.DateTime.Now.DayOfWeek;}

भाग्यशाली है कि रविवार को एनम में 0 को अनुक्रमित किया गया है, अन्यथा इसे होना आवश्यक है (System.DayOfWeek)7



3
क्या आपको using SystemC # में मुफ्त में मिलता है? अगर ऐसा है तो मुझे लगता है कि आप 42 के()=>{var k=1/(int)DateTime.Now.DayOfWeek;} लिए कर सकते हैं । अन्यथा 49 स्पष्ट के साथSystem.
Emigna

3
@ इग्नू ने मुझे हराया; ()=>{var k=1/(int)System.DateTime.Now.DayOfWeek;}छोटा है। और आप बिना पैरामीटर (यानी के v->{...}बजाय ()->{...}) के बजाय खाली अप्रयुक्त पैरामीटर का उपयोग करके एक और बाइट बचा सकते हैं
केविन क्रूज़सेन

1
40 बाइट्स ()=>1/(int)System.DateTime.Now.DayOfWeek:। इसे यहाँ आज़माएँ
Ayb4btu

2

PPCG में आपका स्वागत है!
मार्टिन एंडर

धन्यवाद! इसके अलावा, संपादन के लिए धन्यवाद! मुझे यकीन नहीं था कि कौन सा ऑनलाइन खेल का मैदान चुनना है। अब मुझे पता है। :)
रैंडमऑफअम्ब्रे

2

सी,  68  55 बाइट्स

13 बाइट बचाने के लिए @Ken YN को धन्यवाद!

#import<time.h>
f(n){time(&n);n/=gmtime(&n)->tm_wday;;}

इसे ऑनलाइन आज़माएं!


54 बाइट्स के dलिए प्राप्त करने के लिए मध्यवर्ती छोड़ें n/=gmtime(&n)->tm_wday;(लेकिन मुझे यकीन नहीं है कि मुझे ये सभी संकलक चेतावनी पसंद हैं ...)
केन YN

@ KenY-N धन्यवाद!
स्टेडीबॉक्स

1

आर , 40 बाइट्स

stopifnot(weekdays(Sys.Date(),T)!="Sun")

इसे ऑनलाइन आज़माएं!

weekdaysतारीख से काम करने के दिन देता है, एक वैकल्पिक तर्क के साथ abbreviateहै, जो shortens Sundayके लिए Sun, एक एकल बाइट बचत।

stopifnotएक त्रुटि फेंकता है तो, प्रत्येक तर्क के लिए, नहीं allकर रहे हैं TRUE, और संदेश पहला तत्व जिनमें से नहीं है यह दर्शाता है के साथ एक त्रुटि फेंकता है TRUE, तो त्रुटि हैError: "Sun" is not TRUE




1

गामा , 40 वर्ण

\A=@subst{Su=\@err\{S\}\;*=;@datime}@end

एक त्रुटि संदेश निर्दिष्ट करना था, इसलिए एक छोटा चुनें: "S"।

नमूना रन:

bash-4.4$ faketime 2018-01-06 gema '\A=@subst{Su=\@err\{S\}\;*=;@datime}@end'

bash-4.4$ faketime 2018-01-07 gema '\A=@subst{Su=\@err\{S\}\;*=;@datime}@end'
S

1

फंकी , 21 बाइट्स

if!os.date"%w"error()

os.date"%w"सप्ताह के वर्तमान दिन को 0-6 प्रारूप में लौटाता है, जहां 0 रविवार है। उस दिन की तार्किकता प्राप्त करना केवल तभी सच होता है जब कार्यदिवस 0 होता है, इसलिए रविवार। फिर बस एक मूल if(a){error()}आश्वासन देगा कि यह कार्यक्रम केवल रविवार को त्रुटी करता है

इसे ऑनलाइन आज़माएं!



हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.