How to resolve the algorithm Day of the week step by step in the Java programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Day of the week step by step in the Java programming language

Table of Contents

Problem Statement

A company decides that whenever Xmas falls on a Sunday they will give their workers all extra paid holidays so that, together with any public holidays, workers will not have to work the following week (between the 25th of December and the first of January).

In what years between 2008 and 2121 will the 25th of December be a Sunday? Using any standard date handling libraries of your programming language; compare the dates calculated with the output of other languages to discover any anomalies in the handling of dates which may be due to, for example, overflow in types used to represent dates/times similar to   y2k   type problems.

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Day of the week step by step in the Java programming language

The provided Java code is designed to determine the years between 2008 and 2121 when Christmas Day (December 25th) falls on a Sunday. Here's a detailed breakdown of the code:

  1. Importing necessary packages:
  • It starts by importing essential Java packages for date and time handling, including java.util.Calendar, java.util.Date, java.util.GregorianCalendar, and static java.util.Calendar.*. These packages provide classes and methods for working with dates and times.
  1. main Method:
  • The program's entry point is the main method.
  1. Calendar Initialization:
  • It initializes a Calendar instance named calendar using new GregorianCalendar(year, DECEMBER, 25). This sets the calendar to December 25th of the specified year.
  1. Loop Through Years:
  • The program enters a loop that iterates through years from 2008 to 2121, inclusive. The loop variable year is incremented by 1 in each iteration.
  1. Checking if Christmas Falls on Sunday:
  • For each year, it checks if Christmas Day (December 25th) falls on a Sunday. The program retrieves the day of the week for December 25th of the current year using calendar.get(DAY_OF_WEEK). If the result matches SUNDAY, it means Christmas falls on a Sunday for that year.
  1. Printing Results:
  • If Christmas falls on a Sunday for the current year, the program increments a counter (count) and prints the year to the console. A comma is added between the years to separate them.
  1. Output:
  • The program prints a list of years between 2008 and 2121 when Christmas Day (December 25th) falls on a Sunday. The output should look something like this:
2009, 2015, 2021, 2027, 2033, 2039, 2045, 2051, 2057, 2063, 2069, 2075, 2081, 2087, 2093, 2099, 2105, 2111, 2117

Source code in the java programming language

import static java.util.Calendar.*;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class Yuletide{
	public static void main(String[] args) {
		Calendar calendar;
        int count = 1;
        for (int year = 2008; year <= 2121; year++) {
            calendar = new GregorianCalendar(year, DECEMBER, 25);
            if (calendar.get(DAY_OF_WEEK) == SUNDAY) {
                if (count != 1)
                    System.out.print(", ");
                System.out.printf("%d", calendar.get(YEAR));
                count++;
            }
        }
	}
}


  

You may also check:How to resolve the algorithm Hofstadter Q sequence step by step in the Seed7 programming language
You may also check:How to resolve the algorithm Cullen and Woodall numbers step by step in the Rust programming language
You may also check:How to resolve the algorithm Conditional structures step by step in the Deluge programming language
You may also check:How to resolve the algorithm RSA code step by step in the C programming language
You may also check:How to resolve the algorithm Create a file step by step in the FunL programming language