मैं एक प्रोजेक्ट पर काम कर रहा हूं। वहां मुझे एक वर्ष के कुल सप्ताह का पता लगाना चाहिए। मैंने निम्नलिखित कोड के साथ प्रयास किया, लेकिन मुझे गलत उत्तर मिला: 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
इसके बजाय उपयोग करें , यह बहुत बेहतर और सरल है।