Euler Problem 19

You are given the following information, but you may prefer to do some research for yourself.

  • 1 Jan 1900 was a Monday.
  • Thirty days has September,
    April, June and November.
    All the rest have thirty-one,
    Saving February alone,
    Which has twenty-eight, rain or shine.
    And on leap years, twenty-nine.
  • A leap year occurs on any year evenly divisible by 4, but not on a century unless it is divisible by 400.

How many Sundays fell on the first of the month during the twentieth century (1 Jan 1901 to 31 Dec 2000)?

I think this was a new record for me. Solved it in about 3 minutes using the Calendar class. No point calculating it out by longhand and revinventing the wheel. If you think I copped out — bite me. The Java Calendar class was built for stuff like this.

import java.util.Calendar;

public class Euler19
{
    public static void main(String[] args)
    {
        System.out.print(“Problem 19:\n”);
        Euler19 e = new Euler19();
        System.out.print(“Answer = ” + e.Problem()+ “\n”);
    }
    public String Problem ()
    {
        int total = 0;
        Calendar date = Calendar.getInstance();
        for (int year = 1901; year <= 2000; year++)
            for (int month = 1; month <=12; month++)
            {
                date.set(year, month, 1);
                if (date.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)
                    total++;
            }
        return String.valueOf(total);
    }
}

 



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s