Home > other >  How to find sundays between to dates without using any library
How to find sundays between to dates without using any library

Time:01-25

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;
}
}```
  •  Tags:  
  • Related