এসই কখন নামবে?


13

এসই আজ নিচে / পড়বে কেবল 2017-05-04 এ 00:00 ইউটিসি পর্যন্ত 00:20 ইউটিসি পর্যন্ত read

আপনার চ্যালেঞ্জটি হ'ল এসই ডাউন / পঠনযোগ্য হলে সত্যবাদী মান এবং এসই না থাকলে একটি মিথ্যা মান output আপনার কোনও ইনপুট নাও থাকতে পারে এবং এসই কেবল নিচে / পড়েছেন কিনা তা নির্ধারণ করার জন্য আপনাকে অবশ্যই তারিখ বিল্টিনগুলি ব্যবহার করতে হবে (আসলে এসই এপিআই সম্পর্কে কোন অনুসন্ধান করা হচ্ছে না!) উদাহরণ আউটপুট:

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

নোট যে কোনো truthy বা falsy মান অনুমতি দেওয়া হয়, শুধু trueএবং false। আপনার অবশ্যই নিকটতম দ্বিতীয়টির সাথে সঠিক হতে হবে এবং সিস্টেমের ঘড়িতে কোনও পরিবর্তন নেই! আপনি ধরে নিতে পারেন যে আপনার প্রোগ্রামটি +0 UTCসময় অঞ্চলের একটি মেশিনে চলছে ।


8
sudo time <insert time here> && echo true
Okx

8
আমি আমেরিকান না হয়ে সর্বজনীন তারিখের ফর্ম্যাটটি ব্যবহার করার জন্য পরীক্ষার কেসগুলি আপডেট করার পরামর্শ দেব।
শেগি

12
পদক্ষেপ # 1, ডিডোএস এসই-তে ট্রিগার বট সেনা, পদক্ষেপ # 2, "1"
ব্যবহারকারী 2023861

9
প্রথমত, এসও এসআরই পরিচালক হিসাবে, আমি বলতে চাই যে আমি এই প্রশ্নটি পছন্দ করি। ভাল কাজ! যাইহোক, আমি লোকদের মনে করিয়ে দিতে চাই যে সাইটটি শক্ত হয়ে যাবে না ... কেবল পঠনযোগ্য মোডে। এটি বলেছিল, আমি কখন এই প্রক্রিয়াটি শুরু করব তা নির্ধারণে সহায়তা করার জন্য এই প্রশ্নের উত্তরের নির্বাচন করব।
টমঅনটাইম

3
তার মানে আপনার নিজের উত্তরটি অবৈধ, না? অন্য অনেক উত্তর হবে; আপনার আসল সংশোধন বা বর্তমান পরীক্ষার কেসগুলি সেকেন্ডের কথা উল্লেখ করে না।
ডেনিস

উত্তর:



16

জাভাস্ক্রিপ্ট (ES6), 26 24 23 22 21 বাইট

সংরক্ষিত 3 ধন্যবাদ বাইট রোমশ এবং 1 বাইট ধন্যবাদ লুক

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

বর্তমান দিনে সময় অতিবাহিত হয়েছে কিনা তা পরীক্ষা করে 1200000ms (1200s বা 20 মিনিট) কম। ডাউনটাইমটি 21 মিনিট নয় 20 মিনিটের মতো ধরে নেওয়া হয় যা লিঙ্কযুক্ত পোস্টে দেখা যায়। 00:20UTCএকচেটিয়া উপরের সীমা।


new Dateপরিবর্তে ব্যবহার করে 2 বাইট সংরক্ষণ করুন new Date()
শেগি 11

<2অন্য বাইট সংরক্ষণ করতে।
শেগি

1
আপনার দরকার নেই +; /স্বয়ংক্রিয়ভাবে new Dateএকটি রূপান্তরিত Number
লুক

ফাংশন ঘোষণা (_ =>) প্রয়োজন? জাভাস্ক্রিপ্ট বিশ্বব্যাপী চলতে পারে।
ব্রিল্যান্ড

@ ব্রিলিয়ান্ড হ্যাঁ, অন্যথায় আউটপুট প্রয়োজন হবে, সবচেয়ে alertদীর্ঘতম যা খুব দীর্ঘ
অ্যাস্কিআই-

9

পাইথন 2 , 41 39 বাইট

এরিক দ্য আউটগল্ফারকে ধন্যবাদ 2 বাইট সংরক্ষণ করা

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

এটি অনলাইন চেষ্টা করুন!

আমার জেএস এবং চারকোলের উত্তরগুলির মতো একই অ্যালগরিদম ব্যবহার করে।


এর /72<1থেকে আলাদা কি <72?
xnor

@ এক্সনর হুফস দুঃখিত, এটিকে ভুল করে অনুলিপি করেছেন, এখনই ঠিক করেছেন
এএসসিআইআই-

না, আমি বোঝাতে চাইছি print time.time()/1200<72একই জিনিসটি প্রকাশ করার জন্য এটি একটি ছোট উপায় হবে।
xnor

@ এক্সনর আমি বেশ নিশ্চিত যে কেবল পর্বের প্রথম দিনেই কাজ করবে
এএসসিআইআই-

উফ, আমার অর্থ %1200/72<1-> %1200<72। আপনার টিআইও %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-

@ এএসসিআইআই-শুধুমাত্র প্রশ্নটি বলছে এটি করার দরকার নেই।
প্রোগ্রামার

এর সাথে অন্য একটি বাইট সংরক্ষণ করুন y=>(x=new Date).getUTCMinutes()<21&&!x.getUTCHours()
শেগি

1
ইউটিসি পরিবর্তে স্থানীয় সময় ব্যবহার করার মাধ্যমে অন্যদের 6 বাইট সংরক্ষণ করুন - প্রশ্ন অনুমান হতে পারে স্থানীয় সময় বলেছেন হল ইউটিসি।
ব্রিল্যান্ড

3

এপিএল (ডায়ালগ), 14 বাইট

∧/1 20>2↑3↓⎕TS

∧/ এটি কি সত্য-সত্য (এবং হ্রাস)

1 20> এই সংখ্যাগুলি এর চেয়ে বেশি

2↑ প্রথম দুটি উপাদান

3↓⎕TSতিনটি উপাদান সহ  বর্তমান টি আইমে এস ট্যাম্প বাদ পড়েছে


কোন চরিত্রটি ?
প্রোগ্রামার

@ প্রোগ্রামার ৫০০ (কোয়াড) এপিএলে সিস্টেম নামের জন্য একটি উপসর্গ ix এটি একটি খালি আয়তক্ষেত্র বলে মনে করা হচ্ছে
অ্যাডাম

3

কাঠকয়লা , 25 বাইট

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

ছাপে -truthy জন্য, falsy জন্য কিছুই।

ব্যাখ্যা

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

এটি অনলাইন চেষ্টা করুন!


⟦⟧এখানে কি করে ? আপনার কি তালিকার বা অ্যারলিস্টের আক্ষরিক দরকার?
এরিক আউটগল্ফার

হ্যাঁ, এখানে একটি তালিকা আবশ্যক, তবে এখন আমি এটি সম্পর্কে ভাবি আমার এটি
এএসসিআইআই-

ওহ, সুতরাং এটি যুক্তিগুলির একটি তালিকা? হ্যাঁ, আপনার এটিকে alচ্ছিক করা উচিত, ডিফল্টরূপে তর্ক ছাড়াই ফাংশনটি কল করা।
এরিক আউটগল্ফার

@ এরিকথ আউটগল্ফার সম্পন্ন হয়েছে
এএসসিআইআই-

3

এলিস , 17 বাইট

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

এটি অনলাইন চেষ্টা করুন!

এমন কোনও মেশিনে চালিত হবে যা যার টাইমজোনটি ইউটিসি তে সেট করা আছে (টিআইও সার্ভারের মতো)।

ব্যাখ্যা

অর্ডিনাল মোডে থাকাকালীন, আইপি প্রোগ্রামের মাধ্যমে তির্যকভাবে উপরে এবং নীচে বাউন্স করে। কার্ডিনাল মোডে থাকাকালীন, আইপি বেশিরভাগ অন্যান্য ফানজিয়েডগুলির মতো প্রান্তের চারপাশে আবৃত করে।

/   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

এমএটিএল , 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। এছাড়াও এই ফিরে আসতে পারবেন না 000:20?
ডেনিস

@Dennis হ্যাঁ, এই ফিরে আসবে 000:20কিন্তু ফিরে আসবে 100:20বিয়োগ একটি দ্বিতীয় (জন্য মেশিন Epsilon কর্তৃক প্রদত্ত একটি ছোট ভগ্নাংশ doubleডাটা টাইপ বার 86400)। চ্যালেঞ্জটি বলেছে "আপনার অবশ্যই নিকটতম মিনিটের সাথে সঠিক হতে হবে", তাই আমি বুঝতে পারি এটি গ্রহণযোগ্য
লুইস মেন্ডো

সম্ভবত মাদার মেটা সম্পর্কিত পোস্টটির অর্থ এটিই ছিল তবে চ্যালেঞ্জটি 00:20 -> trueএকটি পরীক্ষার কেস হিসাবে রয়েছে has প্রশ্নে একটি মন্তব্য ছেড়ে।
ডেনিস

3

পাইথন 3 (নন-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। এটি সম্ভবত আরও আরও গল্ফ করা যেতে পারে।
বাহরোম

(প্রশংসনীয় golfing এবং নিয়ম নতুন) কিন্তু শেল মধ্যে এই সঠিক ফলাফল আউটপুট বলে মনে হয়: import time;time.localtime();_.tm_hour==0 and _.tm_min<21। আমরা কেবল ASCII- কে প্রহার করছি না lol
বাহরুম

ঠিক আছে, আমি এখনই সম্পাদনা করতে পারি না, সম্ভবত পরে
মিস্টার এক্সকোডার


2

বাশ , 55 53 51 50 বাইট

@ Robbie0630 এর মন্তব্য থেকে -1 বাইট।

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'

কেবলমাত্র আমি তারিখ / সময় গণনার জন্য এসকিউএল পছন্দ করি।

নমুনা রান:

bash-4.3$ psql -c "select now()between'170503'and'170503 0:20'"
 ?column? 
----------
 f
(1 row)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.