আমি একটি প্রকল্পে কাজ করছি। সেখানে আমার এক বছরের মোট সপ্তাহগুলি খুঁজে পাওয়া উচিত। আমি নিম্নলিখিত কোডটি দিয়ে চেষ্টা করেছি, তবে আমি ভুল উত্তর পেয়েছি: 2020 এ 53 সপ্তাহ রয়েছে, তবে এই কোডটি 52 সপ্তাহ দেয়।
এই কোডটিতে আমি কোথায় ভুল করেছি?
package com.hib.mapping;
import java.time.LocalDate;
import java.time.temporal.WeekFields;
import java.util.Calendar;
import java.util.GregorianCalendar;
import org.joda.time.DateTime;
public class TestWeek {
public static void main(String args[]) {
System.out.println(getWeeks());
}
public static int getWeeks() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2020);
cal.set(Calendar.MONTH, Calendar.JANUARY);
cal.set(Calendar.DAY_OF_MONTH, 1);
GregorianCalendar gregorianCalendar = new GregorianCalendar();
int weekDay = cal.get(Calendar.DAY_OF_WEEK) - 1;
if (gregorianCalendar.isLeapYear(2020)) {
if (weekDay == Calendar.THURSDAY || weekDay == Calendar.WEDNESDAY)
return 53;
else
return 52;
} else {
if (weekDay == Calendar.THURSDAY)
return 53;
else
return 52;
}
}
}
আউটপুট:
52
Date
এবং Calendar
। java.time
পরিবর্তে ব্যবহার করুন, এটি অনেক ভাল এবং সহজ।