In which year was the date the same as the original year?

Posted by Marta on Stack Overflow See other posts from Stack Overflow or by Marta
Published on 2013-10-26T15:00:02Z Indexed on 2013/10/26 15:54 UTC
Read the original article Hit count: 201

Filed under:

It's my first question on this site, but I always found this site really useful.
What I mean with my question is:

  1. you ask the person to give a date (eg. Fill in a date [dd-mm-yyyy]: 16-10-2013)
  2. you than have to ask an interval between 2 years (eg. Give an interval [yyyy-yyyy]:1800-2000)

When the program runs, it has to show what day of the week the given date is. In this case it was a Wednesday. Than the program has to look in which year, in between the interval, the date 16 October also fell on a Wednesday.

So in the end it has to look something like this:

Fill in a date: [dd-mm-yyyy]: 16-10-2013
Give an interval [yyyy-yyyy]: 1900-2000
16 October was a wednesday in the following years:
1905 1911 1916 1922 1933 1939 1944 1950 1961 1967 1972 1978 1989 1995 2000

The full date is Wednesday 16 October, 2013

The small (or biggest) problem is, I am not allowed to use the DATE.function in java.

If someone can help me with the second part I would be really really happy, cause I have no idea how I am supposed to do this

To find out what day of the week the given date falls, I use the Zeller Congruence


class Day {

    Date date; //To grab the month and year form the Date class
    int day;

    final static String[] DAYS_OF_WEEK = {
            "Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
            "Friday"
        };

    public void dayWeekInterval{
    //code to grab the interval from interval Class, and doing stuff here
    }

    public void dayOfTheWeek {
        int m = date.getMonth();
        int y = date.getYear();

        if (m < 3) {
            m += 12;
            y -= 1;
        }

        int k = y % 100;
        int j = y / 100;

        int day = ((q + (((m + 1) * 26) / 10) + k + (k / 4) + (j / 4)) +
            (5 * j)) % 7;

        return day;
    }

    public string ToString(){
    return "" + DAYS_OF_WEEK[day] + day;
    }
}

© Stack Overflow or respective owner

Related posts about java