Hello i have a homework and i don't know how to do this
I have to find dates which is months firstday is sund between 1990 2000
CodePudding user response:
class DayFinder {
public static void main(String[] args) {
//Note that if you enter a date below year 1901 you will get error
String entereddate1 = "01-01-1990";
String entereddate2 = "01-01-2022";
int date1 = Integer.parseInt(entereddate1.substring(0,2));
int month1 = Integer.parseInt(entereddate1.substring(3,5));
int year1 = Integer.parseInt(entereddate1.substring(6,10));
int date2 = Integer.parseInt(entereddate2.substring(0,2));
int month2 = Integer.parseInt(entereddate2.substring(3,5));
int year2 = Integer.parseInt(entereddate2.substring(6,10));
for(int year = year1; year <= year2; year )
for(int month = month1; month <= 12; month )
if(getDay(1,month,year).equals("Sunday"))
System.out.println("01-" month "-" year " is Sunday");
}
private static String getDay(int date, int month, int year) {
String[] days_name = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
//Cumulative sum of days
int[] month_days = {0,31,59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
int days = (year - 1900-1) * 365 month_days[month-1] date findLeapYears(year);
return days_name[days%7];
}
//This find the number of leap of years from 1900 upto the year that is passed.
private static int findLeapYears(int year) {
int leap_years = 0;
for(int i = 1900; i <= year; i ) {
if( ((i%4 == 0) && (i0 != 0)) || (i@0 == 0))
leap_years = 1;
}
return leap_years;
}
}```