একটি বছর Y দেওয়া আছে। Y-এর পরবর্তী অভিন্ন ক্যালেন্ডার বছর বের করতে হবে। দুটি বছরের ক্যালেন্ডার অভিন্ন হলে:
- উভয় বছর একই দিনে শুরু হয়।
- উভয়ই লিপ ইয়ার বা উভয়ই নন-লিপ ইয়ার।
পরবর্তী বছর থেকে শুরু করে প্রতিটি বছর চেক করুন। দিনের অফসেট ট্র্যাক করুন। ৭ দিন অফসেট হলে একই দিনে শুরু হয়। লিপ ইয়ার চেক করুন।
উদাহরণ
#include <iostream>
using namespace std;
int countExtraDays(int y) {
if (y % 400 == 0 || (y % 100 != 0 && y % 4 == 0)) return 2;
return 1;
}
int nextIdenticalYear(int y) {
int days = countExtraDays(y);
int x = y + 1;
for (int sum = 0; ; x++) {
sum = (sum + countExtraDays(x)) % 7;
if (sum == 0 && countExtraDays(x) == days)
return x;
}
}
int main() {
int curr = 2019;
cout << "Next identical year of " << curr << " is: " << nextIdenticalYear(curr);
return 0;
}
আউটপুট
Next identical year of 2019 is: 2030