পাওয়ারশেল v3 +, 99 95 বাইট
নিষ্ঠুর শক্তি পদ্ধতির -
param($y)(1..12|%{$m=$_;2,3,5,7,11,13,17,19,23,29,31|?{(date "$m-$_-$y").DayofWeek-eq3}}).Count
ইনপুট লাগে $y
থেকে লুপ 1
থেকে 12
মাস সাময়িকভাবে মধ্যে, দোকানে $m
, তারপর থেকে প্রধানমন্ত্রী ওভার loops 2
জন্য 31
। তাদের প্রত্যেকের জন্য, আমরা Get-Date
সেই নির্দিষ্ট দিনের একটি নির্মাণ করি , তারপরে কেবলমাত্র DayOfWeek
-eq
ইউলযুক্ত 3
(যেমন, বুধবার) সাথে নির্বাচন করি। একটি প্যারেন্সে সমস্ত অ্যারে তৈরি করতে সক্ষম .Count
করে এবং সেগুলি গ্রহণ করে।
বিকল্পভাবে, গাণিতিক পদ্ধতির -
পাওয়ারশেল v3 +, 105 বাইট
param($y)(16,19,18,20,16,18,19)[($a=(date "1-1-$y").DayOfWeek)]+(1,-3,0,1,2)[$y%5]*($a-in0,2,3,4)*!($y%4)
নিষ্ঠুর বলের পদ্ধতির চেয়ে কেবল একটি চুল বেশি দীর্ঘ হয় তবে এটি অন্যদের পক্ষে উপকারী হতে পারে বলে আমি এখানে এটি অন্তর্ভুক্ত করছি।
আবার $y
বছর হিসাবে ইনপুট লাগে । এবার আমরা বছরের প্রথম দিনের ভিত্তিতে কঠোরভাবে গণিত অপারেশন করছি performing আমরা প্রথমে সপ্তাহের কোন দিন তা গণনা করি এবং এটি $a
পরে ব্যবহারের জন্য সংরক্ষণ করি । সেই সূচকে প্রথম অ্যারেতে সূচিত করে, যা আমাদের সংখ্যায় সাধারণত সঠিক হয়। আমরা এটি একটি দ্বিতীয় সূচক যুক্ত করতে হবে এটি একটি সম্ভাব্য লিপ বছর কিনা তার ভিত্তিতে, এটি রবিবার, মঙ্গলবার, বুধবার, বা বৃহস্পতিবার, এবং বছরটি কী তার উপর ভিত্তি করে।
এটি নিম্নলিখিত পর্যবেক্ষণের ভিত্তিতে তৈরি। প্রথম কলামটি 1 লা জানুয়ারী সপ্তাহের কোন দিন, দ্বিতীয়টি হ'ল স্বাভাবিক আউটপুট। বছরটি মধ্যম সংখ্যাগুলির মধ্যে একটি না হলে তার পরিবর্তে এটি প্যারেন্সে সংখ্যা। চূড়ান্ত কলামে% 5 সূচক কীভাবে কাজ করে তা বর্ণনা করে।
Jan-1 -> # ... Except if $y= (then it's this number) | $y % 5 =
Sun -> 16 ... 1928 1956 1984 etc. (17) | 3
Mon -> 19
Tue -> 18 ... 1924 1952 1980 etc. (20) | 4
Wed -> 20 ... 1936 1964 1992 etc. (17) | 1
Thur -> 16 ... 1920 1948 1976 etc. (17) | 0
Fri -> 18
Sat -> 19
দ্রষ্টব্য: এই দুটি অনুমান en-us
সংস্কৃতি / তারিখের তথ্যের জন্য বর্তমান পাওয়ারশেল সেটিং। তারিখ বিন্যাস এবং DayOfWeek
নম্বর অন্যান্য সংস্কৃতি বৈকল্পিকের জন্য সেই অনুযায়ী সামঞ্জস্য করা প্রয়োজন হতে পারে।