পরবর্তী পাবলিক ছুটি


18

অস্ট্রেলিয়ানরা পাবলিক ছুটি, এবং মদ্যপান পছন্দ করে। গতকাল, ২th শে জানুয়ারী অস্ট্রেলিয়া দিবস ছিল, এটি একটি সরকারী ছুটি। গতকাল কাজে না গিয়ে খুশি হয়েছিলাম, পরের বার প্রকাশ্যে ছুটি পাওয়ার সময় জানতে আগ্রহী! দুর্ভাগ্যক্রমে, আমার কিছুটা পান করার দরকার ছিল এবং আমি নিজের জন্য এটি ব্যবহার করতে সক্ষম নই।

একটি প্রোগ্রাম লিখুন যা অস্ট্রেলিয়ান তারিখ / সময় নোটেশনে (ডিডি / মিমি) ইনপুট হিসাবে গ্রহণ করবে এবং পরবর্তী সার্বজনীন ছুটির দিন পর্যন্ত আউটপুট দিন। কারণ আমি কুইন্সল্যান্ডের (কিউএলডি) বাসিন্দা, আমি কুইন্সল্যান্ডারকে প্রভাবিত এমন সরকারী ছুটিতে কেবল আগ্রহী :

25/03 | শুক্রবার
26/03 | ইস্টার শনিবার
28/03 | ইস্টার সোমবার
25/04 | আনজাক দিন
02/05 | শ্রম দিবস
03/10 |
রানির জন্মদিন 25/12 | বড়দিনের দিন
26/12 | বক্সিং দিবস
27/12 | ক্রিসমাস দিবস ছুটি

সাইট থেকে নিম্নলিখিত নোট:

ক্রিসমাস দিবস ছুটি

নতুন বছরের দিন, ক্রিসমাস ডে বা বক্সিং ডে যখন উইকএন্ডে আসে তখন একটি অতিরিক্ত পাবলিক ছুটি যুক্ত করতে হবে।

ক্রিসমাসের দিনটি রবিবার হওয়ায় অতিরিক্ত সরকারী ছুটি রয়েছে। ক্রিসমাসের দিনটি এখনও সরকারী ছুটি।

যেহেতু আমি একজন সকালের মানুষ, আপনার বর্তমান তারিখটিকে একটি দিন হিসাবে অন্তর্ভুক্ত করা উচিত (যেহেতু আমি সম্ভবত পরবর্তী পাবলিক ছুটির দিনে আপনার প্রোগ্রামটি পরীক্ষা করব)। অর্থ্যাৎ, যদি কোনও सार्वजनिक ছুটির তারিখ প্রবেশ করা হয় তবে আপনার আউটপুটটি হওয়া উচিত 0; যদি কোনও सार्वजनिक ছুটির দিন প্রবেশের আগের দিনটি হয় তবে আপনার আউটপুট হবে 1

আমি শুধুমাত্র মধ্যে তারিখ আগ্রহী এখন বছর শেষ না হওয়া পর্যন্ত (27/01)। আপনার অ্যাকাউন্টে চূড়ান্ত তারিখটি 31/12 হয় যেখানে আপনার আউটপুট হবে 1(নতুন বছরের জন্য)।

স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।

ইনপুট

  • ইনপুট সর্বদা 5 টি অক্ষর থাকবে: 4 টি বর্ণ, হাইফেন -বা স্ল্যাশের সাথে পৃথক/
  • ইনপুট কেবল 27/01 থেকে 31/12 এর মধ্যে তারিখ হবে

আউটপুট

  • ইনপুট তারিখ সহ কুইন্সল্যান্ড অস্ট্রেলিয়ায় পরবর্তী প্রকাশ্য ছুটির দিন পর্যন্ত দিনের সংখ্যা: 0এবং 153(দীর্ঘতম ব্যবধান) এর মধ্যে একটি সংখ্যা হওয়া উচিত
  • কোনও নতুন লাইন বা ত্রুটি নেই

উদাহরণ

01-05 = 1  
02-05 = 0  
03-05 = 153  
25/12 = 0
26-12 = 0
27/12 = 0
30/12 = 2
31-12 = 1

আশা করি এটি পরিষ্কার এবং কিছুই বাদ পড়েছে; তবে এটি আমার দ্বিতীয় প্রশ্ন তাই আমি যে কোনও প্রতিক্রিয়ার প্রশংসা করব এবং এএসএপ সমস্যা সমাধানের জন্য যথাসাধ্য চেষ্টা করব।


@ অন্তর্ভুক্তকারীর নাম এখানে দুর্দান্ত পরামর্শের জন্য ধন্যবাদ! আমি প্রশ্নে তারিখগুলি যুক্ত করেছি
তাস

@ আপনি কি নিশ্চিত যে এই তারিখগুলি সঠিক? উদাহরণগুলির মধ্যে থাকা উক্তিগুলির সাথে মেলে না এবং উভয়ই ওয়েবসাইটের সাথে মেলে না।
অ্যাডাম মার্টিন

@ অ্যাডামমার্টিন এটি নির্দেশ করার জন্য ধন্যবাদ। আমি ডিসেম্বরের তারিখগুলি ভুলভাবে রেখেছি। উদাহরণের মধ্যে রয়েছে কেবল কোনও তারিখ, সরকারী ছুটির দিনে নির্দিষ্ট নয়। এগুলি কেবল প্রবেশের তারিখগুলির উদাহরণ এবং আউটপুটটি কী হওয়া উচিত are উদ্ধৃত হওয়াগুলিকে ওয়েবসাইটের সাথে (এবং আশাকরি করা উচিত) মেলানো উচিত
তাস

আপনি কুইন্সল্যান্ডে রানির জন্মদিনটি অক্টোবরে পালন করেন? এটি এত অদ্ভুত, তবে লিঙ্কটি থেকে সঠিক বলে মনে হচ্ছে।
স্তর নদী সেন্ট

বাহ, আপনি ছেলেরা সরাসরি জুন থেকে সেপ্টেম্বর মাধ্যমে কোন ছুটি না? এটা মোটামুটি।
জো জেড।

উত্তর:


2

পাইথ , 98 84 62 67 বাইট

আপডেট: দিনের সংখ্যা গণনার জন্য সমস্ত 12 মাসের জন্য দিন গণনার তালিকা সংক্ষিপ্ত করে 14 বাইট সংরক্ষণ করা হয়েছে। অন্য তালিকাটি সংক্ষেপ করার জন্য এখনও কোনও ভাল উপায় খুঁজে পাওয়া যায় নি!

আপডেট 2: দিন-সংখ্যাগুলির তালিকাটি বেজ 256 স্ট্রিং হিসাবে শেষ করে কোড 22 লিখে আরও 22 টি বাইট সংরক্ষণ করা হয়েছে।

J30KhJ=Yc:z"\W"dd=N+s<[KtJKJKJKKJKJK)tseYshY-hfgTNCMc"UVXt{ĕŨũŪů"1N

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

আমার পাইথনের উত্তরের মতো একই অ্যালগরিদম। এবং বছরের দিন পাওয়ার জন্য কোনও বিল্টিন নেই, তাই আমাকে এটি নিজেই করতে হয়েছিল। বছরের গণনার জন্য এবং ছুটির দিনগুলির জন্য এই 2 টি তালিকা তৈরি করা বেশ ব্যয়বহুল ... আবার এটি একবার দেখে নেওয়া হবে এবং সেগুলি আরও কম বাইটে উত্পন্ন করার চেষ্টা করবে।


হাইফেন দিয়ে আলাদা করা ইনপুটটি পছন্দ হবে বলে মনে হয় না তবে অন্যথায় দুর্দান্ত
তাস

@ টাস্কটির জন্য ধন্যবাদ, সম্পূর্ণরূপে সেই অংশটি ওভারড্রেড করুন ... আরও 5 বাইটের ব্যয়ে এটি স্থির করা হয়েছে। সম্ভবত আপনি টেস্টকেসগুলিতে কিছু হাইফেন যুক্ত করা উচিত, যেহেতু আপনি চান যে তারা প্রতিটি সম্ভাব্য ইনপুট প্রকরণটি আবরণ করতে পারে।
ডেনকার

5

অ্যাপ্লিকেশনগুলির জন্য ভিজ্যুয়াল বেসিক, 155 বা 118 বাইট

সংস্করণ 1 - স্থানীয়-স্বতন্ত্র, 155 বাইট

Function h(d)
For i=0To 9
h=Array(0,1,3,31,38,192,275,276,277,282)(i)+42454-DateSerial(16,Val(Right(d,2)),Val(Left(d,2)))
If h>=0Goto 9
Next
9 End Function

সংস্করণ 2 - স্থানীয়-নির্ভর, 118 বাইট

Function h(d)
For i=0To 9
h=Array(0,1,3,31,38,192,275,276,277,282)(i)+42454-CDate(d)
If h>=0Goto 9
Next
9 End Function

বাইট গণনা চূড়ান্ত .BAS ফাইলের জন্য, লাইনফিড অক্ষরগুলি সহ। স্ট্যান্ডার্ড ভিবিএ সম্পাদক বাইরে সম্পাদিত (এটি কিছু কীওয়ার্ডের অতিরিক্ত স্পেস এবং ভার্বোস ফর্মগুলি চাপিয়ে দেয়) - তবে যে কোনও অফিস অ্যাপ্লিকেশনে আমদানি করে এবং সহজেই চালিত হয় (যেমন ? h("10/08")উইন্ডোতে পরীক্ষার ধরণের পরীক্ষা করতে , অথবা এক্সেলটিতে কোনও সেল সূত্রে সরাসরি ব্যবহার করা হয়)।

(সম্পাদনা) প্রাথমিকভাবে আমি DateSerialফাংশনটি লোকেল-সেফ করতে ব্যবহার করতে বেছে নিয়েছি (সংস্করণ 1)। যেহেতু আমি ব্রাজিলে বাস করি এবং এইভাবে আমার সিস্টেমটি "ডিডি / মিমি / ওয়াই" ফর্ম্যাটটি তারিখের জন্য ব্যবহার করার জন্য কনফিগার করা হয়েছে (ঠিক অস্ট্রেলিয়ার মতো) আমি তার CDateপরিবর্তে (সংস্করণ 2) ব্যবহার করে আরও ছোট সংস্করণটি লিখতে পারি । CDateপাঠ্যকে তারিখে রূপান্তর করতে সিস্টেম লোকাল তথ্য ব্যবহার করে। আমি এই সংস্করণেও ধরে নিয়েছি যে কোডটি কেবলমাত্র ২০১ during চলাকালীন চলবে (যদি বছর বাদ দেওয়া হয় (-year বাইট) CDateসিস্টেমের ঘড়ি অনুসারে বর্তমান বছরটি ধরে নেয়)।

তৃতীয় লাইনে 42454 সংখ্যাটি হল 42450 এর সমষ্টি যা ভিবিএতে 01/01/2016 এর সংখ্যার উপস্থাপনা, এবং 84 হল প্রথম ছুটির দিনটি বছরের বছর। অ্যারেতে প্রতিটি ছুটির জন্য বছরের সেরা দিন থাকে (01/01/2017 সহ) অফসেট -৮৮ দ্বারা অফসেট হওয়ায় এটি কিছু অঙ্ক দূরে নেয়। ২০১ on এর পরিবর্তে ১ 16 ব্যবহার করা DateSerialআরও দুটি বাইট নিবে।

পুনরাবৃত্তির ভিতরে নয় বার অভিন্ন অ্যারে তৈরি করা "খারাপ" কোড, তবে এটি আরও 3 বাইট কাজ করে এবং সংরক্ষণ করে (একটি অ্যারের নামের জন্য এবং একটি লুপের বাইরে সমান চিহ্নের জন্য এবং আরও একটি লুপের ভিতরে অ্যারে উল্লেখ করার জন্য)।

0 এবং দ্বিতীয় এবং চতুর্থ লাইনের নীচের কীওয়ার্ডের মধ্যে "অনুপস্থিত" ফাঁকা স্থানগুলি আবশ্যক নয় কারণ তারা মডিউলটি আমদানি করার সময় VBE দ্বারা স্বয়ংক্রিয়ভাবে পুনঃপ্রবর্তিত হয়। If <...> Goto <linenumber>লুপ থেকে বিরতিতে পুরানো তবে বাইট-সস্তার ব্যবহৃত (উভয় If <...> Then Exit Forএবং If <...> Then Exit Functionআরও অক্ষর ব্যবহার করুন)।

এছাড়াও ভিবিএতে ফাংশনটির নাম স্থানীয় ভেরিয়েবল হিসাবে আচরণ করে এবং এর মানটি কার্যকর করার পরে ফাংশন দ্বারা স্বয়ংক্রিয়ভাবে ফিরে আসার বিষয়টিও গ্রহণ করে।


পিপিসিজিতে আপনাকে স্বাগতম! এখানে আমরা দোভাষী দ্বারা একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ সংজ্ঞায়িত করি, সুতরাং এটি নির্দিষ্ট লোকেলের প্রয়োজনে পুরোপুরি গ্রহণযোগ্য।
লিটারোসিয়েস্ট

ধন্যবাদ! একটি ছোট স্থানীয়-নির্ভর সংস্করণ যুক্ত করতে সম্পাদিত।
dnep

4

জাভাস্ক্রিপ্ট (ES6), 131 128 বাইট

d=>[56,57,59,87,94,248,331,332,333,338].map(n=>r=r||(q=1454e9+n*864e5-new Date(d[3]+d[4]+`/${d[0]+d[1]}/16`))>=0&&q/864e5,r=0)|r

ব্যাখ্যা

প্রথম Dateযুগের পরে ইনপুট স্ট্রিংটিকে কয়েক মিলিসেকেন্ডে রূপান্তর করতে জাভাস্ক্রিপ্ট বিল্ট-ইন কনস্ট্রাক্টর ব্যবহার করে , তারপর প্রতিটি পাবলিক ছুটির জন্য মিলিসেকেন্ডের সংখ্যার সাথে এটিকে তুলনা করে।

এটি রেফারেন্স তারিখের পরের দিনগুলির হিসাবে একটি অ্যারেতে সরকারী ছুটির দিনগুলি সংরক্ষণ করে এটি করে। আমি 2016-01-29রেফারেন্সের তারিখটি বেছে নিয়েছি কারণ যুগের পর থেকে মিলিসেকেন্ডের সংখ্যা এই তারিখের জন্য সবচেয়ে কম সংক্ষিপ্ততর হতে পারে। এই দিন এবং পরবর্তী সময়ের মধ্যে যে কোনও সংখ্যক মিলিসেকেন্ড কাজ করে কারণ ফলাফলটি গোল হয়ে যায়, এবং সংখ্যাটি মাঝখানে রাখলে দিবালোক সংরক্ষণের প্রভাব এড়ানো যায় (যদিও ওপি'র টাইমজোনটিতে দিবালোকের সঞ্চয় নেই)। এই দিনের সংখ্যা 1453986000000এবং এটির চারপাশে 1454000000000(কয়েক ঘন্টা যোগ করা) এর অর্থ এটি লিখিত হতে পারে 1454e9

d=>
  [56,57,59,87,94,248,331,332,333,338]             // list of day offsets from 01/29
  .map(n=>                                         // for each public holiday offset n
    r=r||                                          // if r is already set, do nothing
      (q=                                          // q = approximate difference in ms
        1454e9+n*864e5                             // time of public holiday
        -new Date(d[3]+d[4]+`/${d[0]+d[1]}/16`)    // time of input date
      )
      >=0&&                                        // if q >= 0
        q/864e5,                                   // r = q in days
    r=0                                            // r = result
  )
  |r                                               // floor and return r

পরীক্ষা

এই সমাধানটি ব্যবহারকারীর টাইমজোন নির্ভর করে। এটি ওপি'র (এবং আমার) সময় অঞ্চল (GMT +1000) এ কাজ করে। আপনি যদি এটি একটি ভিন্ন টাইম জোনে পরীক্ষা করতে চান numberOfHoursDifferentFromGMT1000 * 60 * 60 * 1000তবে রেফারেন্সের তারিখ নম্বর যুক্ত করে কাজ করা উচিত । (যেমন GMT +0430 হবে -5.5 * 60 * 60 * 1000 + 1454e9+n*864e5)


যখন হাইফেন দ্বারা তারিখ আলাদা করা হয় এটি সর্বদা 0 দেয়। আমি ইতিমধ্যে ওপিকে তার টেস্টকেসগুলি সামঞ্জস্য করতে বলেছি, কারণ সেগুলি পৃথককারী হিসাবে স্ল্যাশ সহ।
ডেনকার

@ ডেনারএফে ওহ, আমি ভেবেছিলাম তার অর্থ আমরা পৃথককারী বাছাই করতে স্বাধীন ছিলাম। ঘটনাচক্রে, এটিকে বিভাজনকারী-দ্বিধাগ্রস্ত করে তোলে আমার 3 বাইট সংরক্ষণ, তাই ধন্যবাদ!
ব্যবহারকারী81655

1
মনে হচ্ছে নিয়মটি separated with a hyphen - or slash /কিছুটা দ্বিধাবিভক্ত। আমার জন্য এটির অর্থ এই যে আমাদের উভয়কেই মোকাবেলা করতে হবে, তবে আমি অবশ্যই আপনার পক্ষটি দেখতে পাচ্ছি। অনুমান করুন যে ওপিকে এটি পরিষ্কার করা উচিত।
ডেনকার

3

টি-এসকিউএল, 210 , 206 , 194 বাইট

(এখানে প্রথম পোস্ট, আশা করি এটি ঠিক আছে তবে ভাল থাকবেন :)

ইনপুট প্রবেশ করে @i, উভয় /এবং -বিভাজক হিসাবে পূরণ করে। আমি অস্ট্রেলিয়ায় আছি, সুতরাং আমার তারিখের ফর্ম্যাটটি @ টাসের মতো

DECLARE @i CHAR(5)='23-09';DECLARE @c INT=DATEPART(dy,CAST(REPLACE(@i,'-','/')+'/2016' AS DATE))-1;SELECT MIN(b)-@c FROM(VALUES(84),(85),(87),(115),(122),(276),(359),(360),(361))a(b)WHERE b>=@c;

3 বাইট সাশ্রয় আপডেট আপডেটvarchar এবং charএকটি স্থান অপসারণ :)

আপডেট 2 ঘোষণা @cএবং একটি নির্বাচন ছাড়াই নিয়োগ করুন


2

টি-এসকিউএল, 296 বাইট

একটি সারণী মূল্যবান ফাংশন হিসাবে তৈরি

create function d(@ char(5))returns table return select min(o)o from(select datediff(day,cast('2016'+right(@,2)+left(@,2)as date),cast(right('2016'+right('0'+cast(d as varchar(4)),4),8)as datetime)+1)o from(values(324),(325),(327),(424),(501),(1002),(1224),(1225),(1226),(1231))d(d))d where 0<=o

নিম্নলিখিত পদ্ধতিতে ব্যবহৃত হয়

SELECT *
FROM (
    VALUES
        ('01/05') --= 1  
        ,('02/05') --= 0  
        ,('03/05') --= 153  
        ,('25/12') --= 0
        ,('26/12') --= 0
        ,('27/12') --= 0
        ,('30/12') --= 2
        ,('31/12') --= 1
    )testData(i)
    CROSS APPLY (
        SELECT * FROM d(t)
    ) out

i     o
----- -----------
01/05 1
02/05 0
03/05 153
25/12 0
26/12 0
27/12 0
30/12 2
31/12 1

(8 row(s) affected)

একটি সংক্ষিপ্ত ব্যাখ্যা

create function d(@ char(5)) returns table  -- function definition
return 
select min(o)o -- minimum set value
from(
    select datediff( -- date difference
        day, -- day units
        cast('2016'+right(@,2)+left(@,2)as date), -- convert input parameter to date
        cast(right('2016'+right('0'+cast(d as varchar(4)),4),8)as datetime)+1 -- convert int values into datetimes and add a day
        )o 
    from(
        values(324),(325),(327),(424),(501),(1002),(1224),(1225),(1226),(1231) -- integers representing the day before public holidays
        )d(d)
    )d 
where 0<=o -- only for values >= 0

2

জাভাস্ক্রিপ্ট (ES6), 134 বাইট

x=>[0,1,3,31,38,192,275,276,277,282].find(z=>z>=(q=x[0]+x[1]- -[...'20212122121'].slice(0,x[3]+x[4]-1).reduce((a,b)=>+b+a+29,0)-85))-q

ব্যবহারকারী 81655 এখনও আমাকে 3 বাইট দ্বারা বীট করেছে, তবে আমি এখান থেকে অন্য কোথাও কোথাও খুঁজে পাওয়ার মতো আর কোথাও খুঁজে পাচ্ছি না। তারিখটি ব্যবহার না করে যে দিন গেছে তার গণনা করে কাজ করে, তারপরে ছুটির অফসেটের অ্যারের সাথে তুলনা করে।


2

পাইথন 2, 204 185 165 166 বাইট

আপডেট: নিজের দ্বারা বছরের দিন গণনা করে এটি 20 ডলার করে গল্ফ করে। দীর্ঘ আমদানির আর দরকার নেই :)

আপডেট 2: আমি আরও নতুন বছরগুলিকে 367 দিনের মতো চিকিত্সা করতে এবং কিছু অন্যান্য ছোট সামঞ্জস্য করে বুঝতে পেরে আরও 20 বাইট ডাউন করে।

def f(d):d=[d[:2],d[3:]];y=sum([31,29,31,30,31,30,31,31,30,31,30,31][:int(d[1])-1])+int(d[0]);return filter(lambda n:n>=y,[85,86,88,116,123,277,360,361,362,367])[0]-y

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

Ungolfed:

def f(d):
    l=[85,86,88,116,123,277,360,361,362,367]
    d=[d[:2],d[3:]]
    y=sum([31,29,31,30,31,30,31,31,30,31,30,31][:int(d[1])-1])+int(d[0])
    f=filter(lambda n:n>=y,l)
    return f[0]-y

বছরের তালিকায় বছরের ছুটির দিনগুলি সংরক্ষণ করে, প্রদত্ত তারিখের আগে যেগুলি রয়েছে তা ফিল্টার করে, সেই ফিল্টার তালিকায় প্রথম উপাদানটি নিয়ে এবং বছরের-দিনটি বিয়োগ করে যা কাজ করে ইনপুট থেকে গণনা করা হয়েছে।


1

পিএইচপি, 116 বাইট

বেশ সোজা এগিয়ে এগিয়ে যাওয়া। এটি বছরের দিনগুলি ছুটির দিনে সংরক্ষণ করে এবং অতীতে যতক্ষণ না তাদের পপ করে। অবশেষে বছরের অনুরোধের দিনটি বিয়োগ করা হয়।

for($x=[366,361,360,359,276,122,115,87,85,84];($a=date(z,strtotime($argv[1].'-2016')))>$t=array_pop($x););echo$t-$a;

বিগত সমস্ত পরীক্ষার কেস কমান্ড লাইন থেকে চালিত হয় এবং হাইফেন ব্যবহার করে ইনপুট গ্রহণ করে, যেমন:

$ php holidays.php "12-05"

1

রুবি 1.9.3, 155 153 বাইট

ক্রিসমাস দিবসের ছুটির পরে, আমাদের আমাদের সুপার-বিশেষ-দিন 366 দরকার! @ ডেনারএফির মতো একই ঘটনা।

require'date'
c=(Date.strptime(ARGV[0],'%d/%m')-Date.parse('01/01')).to_i
print [84,85,87,115,122,276,359,360,361,366].map{|i|(i-c)}.select{|i|i>=0}.min

ব্যবহার:

$ ruby i_want_to_break_free.rb "03/05"

আমি রুবির সম্পর্কে খুব বেশি জানি না, তবে আমি মনে করি আপনি 1 এবং 3 লাইনে সাদা স্পেসগুলি সরিয়ে 3 বাইট সংরক্ষণ করতে পারবেন এছাড়াও আপনার কোডটি যে ইনপুট পদ্ধতিটি ব্যবহার করছেন তাও আপনাকে নির্দিষ্ট করা উচিত, কারণ এটি আপনার কোডে এটি সুস্পষ্ট নয়। আপনি কোনও ফাংশন সংজ্ঞায়িত করে কিছু বাইটস সংরক্ষণ করতে পারেন, যাতে আপনি ইনপুটটি আর্গুমেন্ট হিসাবে গ্রহণ করতে পারেন এবং ফলাফলটি আউটপুট হিসাবে ব্যবহার করতে পারেন।
ডেনকার

@ ডেনারএফি আপনাকে অনেক ধন্যবাদ! আমি 2 বাইট সংরক্ষণ করেছি, তবে আমি মনে করি কোনও ফাংশন সংখ্যা বাড়িয়ে দেবে। আমি ব্যবহারের উদাহরণ সহ উত্তরটি আপডেট করেছি।
তারোদ

0

05 এ বি 1 ই , 45 বাইট

•9JRt€ª´Q®Ië•368вDI„-/S¡`•Σ₁t•ºS₂+s<£O+©@Ïн®-

এটি আর 2016 নাও হতে পারে তবে যাই হোক না কেন ..;) তবুও ধরে নেওয়া হয় 29ফেব্রুয়ারির সাথে লিপ ইয়ার হওয়ার জন্যই ২০১ 2016 সালটি ।

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

9JRt€ª´Q®Ië•  # Push compressed integer 10549819042671399072072399
  368в         # Converted to base-368 as list: [85,86,88,116,123,277,360,361,362,367]
      D        # Duplicate this list
I              # Take the input
 „-/S¡         # Split it on ["-","/"]
      `        # Push both integer separated to the stack
•Σ₁t          # Push compressed integer 5354545
     º         # Mirror it without overlap: 53545455454535
      S        # Converted to a list of digits: [5,3,5,4,5,4,5,5,4,5,4,5,3,5]
       ₂+      # Add 26 to each: [31,29,31,30,31,30,31,31,30,31,30,31,29,31]
         s     # Swap to get the month-integer
          <    # Decrease it by 1
           £   # Only leave the first month-1 values from the integer-list
            O  # Sum that sublist
             + # And add it to the day-integer (so we now have the N'th day of the year)
©              # Save this in the register (without popping)
 @             # Do a >= check with each integer in the first (duplicated) list we created
  Ï            # Only leave the truthy values from the list
   н           # Then pop this sublist and only leave its first value
    ®-         # And subtract the integer we saved in the register (N'th day of the year)
               # (after which the result is output implicitly)

আমার এই 05AB1E টিপটি দেখুন (বিভাগগুলি কীভাবে বড় পূর্ণসংখ্যাগুলি সংকুচিত করতে হয়? এবং পূর্ণসংখ্যা তালিকা কীভাবে সংকোচিত করতে হয়? ) কেন •9JRt€ª´Q®Ië•তা বোঝার জন্য 10549819042671399072072399; •9JRt€ª´Q®Ië•368вহয় [85,86,88,116,123,277,360,361,362,367]; এবং •Σ₁t•হয় 5354545

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