एसई कब नीचे होगा?


13

एसई नीचे होगा / केवल आज ही 2017-05-04 को 00:00 यूटीसी पर 00:20 यूटीसी तक पढ़ा जाएगा ।

आपकी चुनौती एक सत्य मूल्य का उत्पादन करना है यदि एसई नीचे है / केवल पढ़ा है और एक गलत मूल्य है यदि एसई नहीं है। आपके पास कोई इनपुट नहीं हो सकता है, और यह निर्धारित करने के लिए आपको डेट बिल्डरों का उपयोग करना चाहिए कि क्या एसई नीचे है / केवल पढ़ा है (एसई एपीआई क्वेरी नहीं कर रहा है!) उदाहरण आउटपुट:

12:34 UTC 03 May 2017 -> false

00:00 UTC 04 May 2017 -> true

00:20 UTC 20 May 2017 -> undefined, see below

यह अपरिभाषित व्यवहार है, क्योंकि यह समय की खिड़की के बाद बहुत दूर है। स्पष्ट होने के लिए, आप मान सकते हैं कि आपका कार्यक्रम 8:00आज (5/3/17) से यूटीसी 1:00कल (5/4/17) तक चलाया जाएगा।

00:21 UTC 04 May 2017 -> false

00:20 UTC 04 May 2017 -> true

00:10 UTC 04 May 2017 -> true

ध्यान दें कि किसी भी सत्य या मिथ्या मूल्यों की अनुमति है, न कि केवल trueऔर false। आपको निकटतम सेकंड के लिए सटीक होना चाहिए, और सिस्टम घड़ी को बदलना नहीं! आप मान सकते हैं कि आपका प्रोग्राम +0 UTCटाइम ज़ोन पर मशीन पर चलाया जा रहा है।


8
sudo time <insert time here> && echo true
ओकेक्स

8
मैं अमेरिकी के बजाय एक सार्वभौमिक दिनांक प्रारूप का उपयोग करने के लिए परीक्षण मामलों को अपडेट करने का सुझाव दूंगा।
झबरा

12
चरण # 1, DDoS SE, चरण # 2 में बॉट आर्मी को ट्रिगर करें, "1" लौटें
उपयोगकर्ता 2023861 15

9
सबसे पहले, एसओ एसआरई प्रबंधक के रूप में, मैं कहना चाहता हूं कि मुझे यह सवाल बहुत पसंद है। अच्छा कार्य! हालांकि, मैं लोगों को याद दिलाना चाहता हूं कि साइट मुश्किल से कम नहीं होगी ... केवल पढ़ने के लिए केवल मोड में। उस ने कहा, मैं इस प्रश्न के उत्तर पर चयन करूंगा कि प्रक्रिया शुरू करने के लिए मुझे यह निर्धारित करने में मदद करें।
टॉमऑन टाइम

3
इसका मतलब होगा कि आपका अपना जवाब अमान्य है, नहीं? तो कई अन्य उत्तर होंगे; न तो आपके मूल संशोधन और न ही वर्तमान परीक्षण मामलों में सेकंड का उल्लेख है।
डेनिस

जवाबों:



16

जावास्क्रिप्ट (ईएस 6), 26 24 23 22 21 बाइट्स

3 बाइट्स को शुगी के लिए और 1 बाइट को ल्यूक की बदौलत बचाया ।

_=>new Date/12e5%72<1

यदि वर्तमान समय में पारित समय 1200000ms (1200s या 20min) से कम है, तो जाँच करता है। डाउनटाइम को 20 मिनट नहीं 21 मान लेता है, जो कि लिंक किए गए पोस्ट में प्रतीत होता है। 00:20UTCअनन्य ऊपरी बाध्य है।


के new Dateबजाय का उपयोग करके 2 बाइट्स सहेजें new Date()
झबरा

<2एक और बाइट को बचाने के लिए।
झबरा

1
आप की जरूरत नहीं है +; /स्वचालित रूप से में कनवर्ट new Dateकरता है Number
ल्यूक

क्या फ़ंक्शन घोषणा (_ =>) की आवश्यकता है? जावास्क्रिप्ट विश्व स्तर पर चल सकता है।
ब्रिलियनड

@ ब्रिलियनड हां, अन्यथा आउटपुट की आवश्यकता होगी, जो सबसे छोटा है alertजो बहुत लंबा है
ASCII-only

9

पायथन 2 , 41 39 बाइट्स

बच निकले 2 बाइट्स के लिए धन्यवाद एग्री द आउटगोलर

import time
print time.time()/1200%72<1

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

मेरे जेएस और चारकोल उत्तरों के समान एल्गोरिथ्म का उपयोग करता है।


है /72<1से अलग <72?
xnor

@xnor whoops खेद ने इसे गलत, अब ठीक कर दिया
ASCII-only

नहीं, मेरा मतलब है कि मुझे लगता है कि print time.time()/1200<72एक ही बात को व्यक्त करने का एक छोटा तरीका होगा।
xnor

@xnor मुझे पूरा यकीन है कि केवल युग के पहले दिन ही काम करता है, हालांकि
केवल

उफ़, मेरा मतलब था %1200/72<1-> %1200<72। आपका TIO %1200/72<1संस्करण के लिए लिंक - क्या वह गलती है?
xnor

7

जेली , 9 बाइट्स

6ŒT|0Ḍ<21

के TZलिए सेट करने की आवश्यकता है UTC, जो TIO के लिए मामला है।

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

यह काम किस प्रकार करता है

6ŒT|0Ḍ<21  Main link. No arguments.

6ŒT        Get the current time as a string, in the format HH:MM.
   |0      Bitwise OR each character with 0. This casts the characters to int and
           maps the non-digit character : to 0.
     Ḍ     Undecimal; convert from base 10 to integer.
      <21  Compare the result with 21, so 00:00 to 00:20 return 1, all others
           return 0.

(हर कोई था) डेनिस द्वारा बहिष्कृत! अच्छी नौकरी!
प्रोग्रामर


अगर डाउनटाइम लेटेस्ट 'टिल' 00:21, मैं एक बाइट बचा सकता है ...
डेनिस




3

जेएस (ईएस 6), 52 50 49 बाइट्स

y=>(x=new Date).getUTCMinutes()<21&&!x.getUTCHours()

Dateइतना लंबा क्यों है ? बस मिनट अतीत हो जाता है 00:00और trueअगर वे <21 हैं, और falseअन्यथा।


के new Dateबजाय का उपयोग करके 2 बाइट्स सहेजें new Date()
झबरा

2
-1 इस तिथि की जांच नहीं करता
ASCII-केवल

@ ASCII- केवल सवाल यह कहता है कि यह नहीं है।
प्रोग्रामर

के साथ एक और बाइट बचाओ y=>(x=new Date).getUTCMinutes()<21&&!x.getUTCHours()
झबरा

1
यूटीसी के बजाय स्थानीय समय का उपयोग करके एक और 6 बाइट्स सहेजें - सवाल आप मान सकते हैं स्थानीय समय कहते है यूटीसी।
ब्रिलियनड

3

एपीएल (डायलॉग), 14 बाइट्स

∧/1 20>2↑3↓⎕TS

∧/ क्या यह सब सच है (और कमी)

1 20> ये संख्या इससे अधिक है

2↑ के पहले दो तत्व

3↓⎕TSतीन तत्वों के साथ  वर्तमान टी ime एस टैम्प गिरा दिया


क्या चरित्र है ?
प्रोग्रामर

@ प्रोग्रामर 5000 (क्वाड) एपीएल में सिस्टम नामों के लिए एक उपसर्ग है। यह है एक खाली आयत होना चाहिए।
आदम

3

चारकोल , 25 बाइट्स

‹﹪÷UPtime.time⟦⟧¹²⁰⁰¦⁷²¦¹

सच्चाई के -लिए प्रिंट , झूठे के लिए कुछ भी नहीं।

व्याख्या

    UPtime.time⟦⟧          Python function time.time()
   ÷               ¹²⁰⁰      Divided by 1200
 ﹪                    ¦⁷²   Modulo 72
‹                         ¦¹ Less than 1

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


यहाँ क्या करता ⟦⟧है? क्या आपको एक सूची या तीर सूची शाब्दिक की आवश्यकता है?
एरिक आउटरीकॉल

हाँ, यहां एक सूची की आवश्यकता है, लेकिन अब जब मैं इसके बारे में सोचता हूं तो मुझे इसे वैकल्पिक बनाना चाहिए
केवल

ओह, तो यह तर्कों की एक सूची है? हाँ, आपको इसे वैकल्पिक बनाना चाहिए, फ़ंक्शन को बिना डिफ़ॉल्ट रूप से तर्क दिए।
12

@EriktheOutgolfer Done
ASCII-only

3

एलिस , 17 बाइट्स

/o
\T@/4&;'-.C+n

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

एक मशीन पर चलाया जाना माना जाता है जिसका टाइमज़ोन UTC (TIO सर्वर की तरह) पर सेट है।

व्याख्या

ऑर्डिनल मोड में रहते हुए, आईपी प्रोग्राम के माध्यम से तिरछे ऊपर और नीचे उछलता है। कार्डिनल मोड में रहते हुए, आईपी किनारों के चारों ओर घूमता है जैसे कि अन्य फनजियोइड्स।

/   Reflect to SE. Switch to Ordinal.
T   Push a string representing the current date and time, in the format:
    YYYY-MM-DDTHH:MM:SS.mmm±AA:BB
/   Reflect to E. Switch to Cardinal.
4&  Run the next command 4 times.
;   Discard four elements from the top of the stack. Since we're in Cardinal mode,
    this attempts to discard four integers. But the top stack value is a string so
    it gets implicitly converted to all the integers contained in the string. So
    year, month, day, hour, minute, seconds, milliseconds, timezone hour,
    timezone minute will be pushed separately. Then the last four of these
    will be discarded, so that we end up with the minute and the hour on
    top of the stack.
'  Push 21.
-   Subtract it from the minutes. Gives something negative for minutes 0 to 20.
.C  Compute the binomial coefficient n-choose-n. This gives 0 for negative
    results and 1 for non-negative ones. SE is down if both this value and
    the current hour are zero.
+   Add the two values. Iff they are both zero, we still get a zero.
n   Logical NOT of the value. Turns 0 into 1 and everything else into 0.
\   Reflect to NE. Switch to Ordinal.
o   Implicitly convert the result to a string and print it.
@   Terminate the program.

3

MATL , 10 बाइट्स

कई सुधारों के लिए डेनिस को धन्यवाद

Z'1\480*7<

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

व्याख्या

Z'    % Push current date and time as a float. Integer part is day, decimal part is time
1\    % Modulo 1. This gives the time, in units of one day
480*  % Multiply by 480
7<    % Less than 7? Note that 21 minutes / one day equals 7 / 480. Implicitly display. 

क्या यह आपके स्पष्टीकरण के l72बजाय होना चाहिए 171?
डेनिस

@ डेनिस हां, उसे पकड़ने के लिए धन्यवाद!
लुइस मेंडो

यह अभी भी 72बनाम है 71। इसके अलावा इस वापस नहीं होगा 0पर 00:20?
डेनिस

@Dennis हाँ, यह वापसी होगी 0पर 00:20है, लेकिन वापसी होगी 1पर 00:20शून्य से एक दूसरे (के लिए मशीन एप्सिलॉन के द्वारा दिया गया एक छोटा सा अंश doubleडेटा प्रकार बार 86400)। चुनौती कहती है, "आपको निकटतम मिनट के लिए सटीक होना चाहिए", इसलिए मैं समझता हूं कि यह स्वीकार्य है
लुइस मेंडू

शायद यही है कि माँ मेटा पर पोस्ट का मतलब था, लेकिन चुनौती का 00:20 -> trueएक परीक्षण के मामले के रूप में है। सवाल पर एक टिप्पणी छोड़ दी।
डेनिस

3

पायथन 3 (NON-REPL) + समय, 81 77 बाइट्स

-4 बाइट्स बहराम की बदौलत

import time;e=str(time.strftime('%H:%M'));print(e[:2]=='00'and int(e[3:])<21)

एक भोली दृष्टिकोण, वर्तमान तिथि को स्ट्रिंग और उसके पात्रों का विश्लेषण करने के लिए।


आप एक अलग प्रारूप स्ट्रिंग का उपयोग करके बाइट्स के पूरे समूह को बचा सकते हैं, और यदि आप शेल का उपयोग कर रहे हैं, तो आपको प्रिंट फ़ंक्शन की आवश्यकता नहीं है import time;e=str(time.strftime('%H:%M'));e[:2]=='00'and int(e[2:])<21:। यह शायद आगे भी गोल्फ हो सकता है।
बहरोम

(गोल्फ और नियमों के लिए बहुत नया) लेकिन शेल में यह सही परिणाम का उत्पादन करने के लिए भी लगता है import time;time.localtime();_.tm_hour==0 and _.tm_min<21:। हम
ASCII-

ठीक है, मैं अब संपादित नहीं कर सकता, शायद बाद में
श्री एक्सकोडर


2

बैश , 55 53 51 50 बाइट्स

-1 बाइट @ robbie0630 की टिप्पणी से।

a=`date +%s`;echo $[1493856000<a&a<1493857200?1:0]

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

इस समाधान का लाभ यह है कि यह किसी भी तारीख के लिए काम करता है (इसलिए यह 1केवल चुनौती में परिभाषित अवधि के लिए वापस आ जाएगा , क्योंकि यह समय का उपयोग करता है)।


2
की जगह एक बाइट बंद दाढ़ी $(...)के साथ`...`
रोबी

1

स्विफ्ट + फाउंडेशन, 178 बाइट्स

import Foundation;var d=String(describing:Date());func g(_ s:Int)->String{return String(d[d.index(d.startIndex,offsetBy:s)])};print(g(11)+g(12)=="00" ?Int(g(14)+g(15))!<21:false)

तेज मानकों से कम। इसकी जांच - पड़ताल करें!

जैसा कि मेरे पायथन जवाब में, मैंने मूल रूप से करंट Dateको स्ट्रिंग में बदल दिया है और इसके अंकों का विश्लेषण किया है, जिसके आधार पर मैंने बूल को प्रिंट किया था।


1

आर, 65 बाइट्स

library(lubridate)
x=Sys.time()
print(all(!hour(x)&minute(x)<21))

चेक अगर घंटे == 0 और मिनट <21।


1

PostgreSQL, 43 वर्ण

select now()between'170503'and'170503 0:20'

सिर्फ इसलिए कि मैं तारीख / समय की गणना के लिए SQL पसंद करता हूं।

नमूना रन:

bash-4.3$ psql -c "select now()between'170503'and'170503 0:20'"
 ?column? 
----------
 f
(1 row)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.