2017 প্রায় এখানে!


17

চ্যালেঞ্জ

চ্যালেঞ্জটি সহজ:

কোনও ইনপুট না নিলে এবং নিম্নলিখিত বার্তাকে আউটপুট দেয়:

 _     __    __
  |   |  | |   |
  |_  |__| |   | 

31 ডিসেম্বর 2016-এর মধ্যরাত ইউটিসির আগে বা পরে কয়েক ঘন্টা সংখ্যার সমান।

উদাহরণ

উদাহরণস্বরূপ যদি এটি 19:01 ইউটিসি 31 ডিসেম্বর হয় আপনার আউটপুট করা উচিত:

 _     __    __
  |   |  | |   |
  |_  |__| |   | 
 _     __    __
  |   |  | |   |
  |_  |__| |   | 
 _     __    __
  |   |  | |   |
  |_  |__| |   | 
 _     __    __
  |   |  | |   |
  |_  |__| |   | 
 _     __    __
  |   |  | |   |
  |_  |__| |   | 

যদি এটি 23:24 ইউটিসি 31 ডিসেম্বর হয় আপনার আউটপুট করা উচিত:

 _     __    __
  |   |  | |   |
  |_  |__| |   | 

এবং যদি এটি 1:42 ইউটিসি জন 1 ম হয় আপনার আউটপুট করা উচিত:

 _     __    __
  |   |  | |   |
  |_  |__| |   | 
 _     __    __
  |   |  | |   |
  |_  |__| |   | 

স্পষ্টতা: এটি যদি 10-11 বিকাল 31 ডিসেম্বর হয় আপনার দুটি আউটপুট করা উচিত, 11-12 pm ডিসেম্বর 31st আউটপুট এক, 00-01am জানু 1 ম আউটপুট এক, 01-02am জানু 1 ম আউটপুট দুই ইত্যাদি ...

বিধি

  • কোনও ইনপুট নেই
  • ট্রেলিং লাইন বা স্পেসগুলি ঠিক আছে।
  • আপনার প্রোগ্রামটি যে কোনও সময় বা দিন আমি এটি চালানোর সময় কাজ করা উচিত (যদিও একটি বড় আউটপুট সহ)। উদাহরণস্বরূপ জানুয়ারী ২ য় বার সকাল ১১ টা ৪৫ মিনিটে আপনার কোডটি 25 বার আউটপুট করা উচিত।

(এটি আমার প্রথম কোড গল্ফের প্রশ্ন তাই আমি যদি কোনও গুরুত্বপূর্ণ বিষয় রেখে চলে যাই তবে দয়া করে আমাকে জানান))

এটি কোড গল্ফ তাই সংক্ষিপ্ত বিট জিতেছে


ঘন্টার সংখ্যাটি কি নিকটতম পূর্ণসংখ্যায় বৃত্তাকার হয়? যদি এটি নববর্ষ-মধ্যরাতের আধঘন্টার মধ্যে হয় তবে কোনও আউটপুট থাকা উচিত নয়?
— গ্রেগ মার্টিন

@ গ্রেগমার্টিন স্পষ্টতার জন্য আমার সম্পাদনা দেখুন।
— কোয়ান্টাম স্প্যাগেটিফিকেশন

আমি 3 জানুয়ারী প্রোগ্রামটি চালিত হলে কী হবে?
— betseg

@ বিটসেগ আপনি কেবল এটি সম্পর্কে ভেবেছিলাম। সম্পাদনা দেখুন :)। আউটপুট বড় হবে যদিও এটি একই কাজ করা উচিত।
— কোয়ান্টাম স্প্যাগিটিফিকেশন

প্রথম প্রথম প্রশ্ন। রাউন্ডিং সম্পর্কে: পুনরাবৃত্তির সংখ্যা হ'ল বর্তমান সময়ের ইউসিটি এবং 1 জানুয়ারির ইউটিসির 0:00:00 এর মধ্যে পার্থক্যের সম্পূর্ণ মূল্য value সঠিক?
— edc65

উত্তর:


6

জাভাস্ক্রিপ্ট (ES6), 107

কোনও পরামিতিবিহীন একটি বেনামী পদ্ধতি হিসাবে

নোট 1483228800000হয়Date.UTC(2017,0)

_=>` _     __    __
  |   |  | |   |
  |_  |__| |   |
`.repeat((Math.abs(new Date-14832288e5)+36e5-1)/36e5)

পরীক্ষা প্রতি 1 মিনিটে এটি আপডেট হতে থাকে তবে আউটপুট পরিবর্তন দেখতে আপনার অনেক ধৈর্য দরকার।

F=_=>`_     __    __
 |   |  | |   |
 |_  |__| |   |
`.repeat((Math.abs(new Date-14832288e5)+36e5-1)/36e5)

update=_=>O.textContent=F()

setInterval(update,60000)

update()
<pre id=O></pre>


4

পাইথন 2 - 97 + 17 = 114 বাইট

import time
print'_     __    __\n |   |  | |   |\n |_  |__| |   |\n'*int((abs(time.time()-1483228800)+3599)/3600)

এডসি 65 এর উত্তর থেকে সিলিংয়ের জন্য ধার করা যুক্তি ।

পাইথন 3.5 - 116 বাইট

import time,math
print('_     __    __\n |   |  | |   |\n |_  |__| |   |\n'*math.ceil(abs(time.time()/3600-412008)))

math.ceilএকটি পূর্ণসংখ্যা ফেরত দেয় 3.xযেখানে 2.xএতে একটি ভাসা ফেরত দেয়।

3 বাইট সংরক্ষণের জন্য ধন্যবাদ এলপিড্রো ।


ধন্যবাদ এলপিড্রো এটি করতে চলেছিলাম, আমার পূর্ববর্তী সমাধানগুলিতে আমি বেঁধে ছিলাম datetime.now(pytz.utc).timestamp()যার জন্য অজগর 3.5 প্রয়োজন required
— গুরুপদ মামাদাপুর

3

পাইথ - 71 68 বাইট

*"_     __    __
 |   |  | |   |
 |_  |__| |   |
".Ea412008c.d0 3600

আমার অজগর 3.5 উত্তর ব্যবহৃত একই যুক্তি ব্যবহার করে।

এখানে চেষ্টা করুন!


@ কোয়ান্টামস্প্যাগটিটিফিকেশন এটি কি খাটো নয়?
— গুরুপদ মামাদপুর

2

সি ক্লাং 3.8.1 327 317 145 বাইট সহ সংকলিত

172 বাইট সংরক্ষিত হয়েছে @ এডক 65 এর জন্য ধন্যবাদ

#include <time.h>
t;main(){time(&t);t=abs(difftime(t,1483228800)/3600);while(t--)puts(" _     __    __\n  |   |  | |   |\n  |_  |__| |   |\n");}

Ungolfed

#include <time.h>
t;
main()
{
time(&t);

t=difftime(t, 1483228800)/3600;

while(t--)
    puts(" _     __    __\n  |   |  | |   |\n  |_  |__| |   |\n");
}

317 বাইট

10 লিটস সংরক্ষণ করেছেন @ লেজিওনম্যামাল 978 এর জন্য ধন্যবাদ

#include <time.h>
t,y,w;main() {struct tm n;time(&t);n=*localtime(&t);n.tm_hour=n.tm_min=n.tm_sec=n.tm_mon=0;n.tm_mday=1;w=n.tm_year;if((w&3)==0&&((w % 25)!=0||(w & 15)==0))w=8784;else w=8760;t=(int)difftime(t, mktime(&n))/3600;t=t<w/2?t:w-t;for(;y++<t;)puts(" _     __    __\n  |   |  | |   |\n  |_  |__| |   |\n");

Ungolfed

#include <time.h>
t,y,w;
main()
{
    struct tm n;
    time(&t);

    n=*localtime(&t);

    n.tm_hour=n.tm_min=n.tm_sec=n.tm_mon=0;
    n.tm_mday=1;
    w=n.tm_year;

    if((w&3)==0&&((w % 25)!=0||(w & 15)==0))w=8784;else w=8760;

    t=(int)difftime(t, mktime(&n))/3600;
    t=t<w/2?t:w-t; 

    for(;y++<t;)
        puts(" _     __    __\n  |   |  | |   |\n  |_  |__| |   |\n");
}

আমি যখন সক্ষম হব তখন আমি কিছু ব্যাখ্যা যুক্ত করব।


তুমি কি করতে n.tm_hour=n.tm_min=...=n.tm_mon=0;পারছ না ?
— LegionMammal978

@ লেজিমনম্মল ৯7878 ওহ হ্যাঁ, আমি ভুলে গেছি। ধন্যবাদ।
— ওয়েড টাইলার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.