Java Date and Time (HackerRank Solution)

The Calendar class is an abstract class that provides methods for converting between a specific instant in time and a set of calendar fields such as YEAR, MONTH, DAY_OF_MONTH, HOUR, and so on, and for manipulating the calendar fields, such as getting the date of the next week.

You are given a date. You just need to write the method, , which returns the day on that date. To simplify your task, we have provided a portion of the code in the editor.
For example, if you are given the date , the method should return  as the day on that date.
image
Input Format
A single line of input containing the space separated month, day and year, respectively, in    format.
Constraints
Output Format
Output the correct day in capital letters.
Sample Input
08 05 2015
Sample Output
WEDNESDAY
Explanation
The day on August th  was WEDNESDAY.
Source By : Hacker Rank

import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toList;

class Result {

/*
* Complete the 'findDay' function below.
*
* The function is expected to return a STRING.
* The function accepts following parameters:
* 1. INTEGER month
* 2. INTEGER day
* 3. INTEGER year
*/

public static String findDay(int month, int day, int year) {
Calendar cal = Calendar.getInstance();

cal.set(Calendar.MONTH, month-1);
cal.set(Calendar.DAY_OF_MONTH, day);
cal.set(Calendar.YEAR, year);

String[] day_of_week = {"SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY","SATURDAY"};
return day_of_week[cal.get(Calendar.DAY_OF_WEEK)-1];
}

}

public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

String[] firstMultipleInput = bufferedReader.readLine().replaceAll("\\s+$", "").split(" ");

int month = Integer.parseInt(firstMultipleInput[0]);

int day = Integer.parseInt(firstMultipleInput[1]);

int year = Integer.parseInt(firstMultipleInput[2]);

String res = Result.findDay(month, day, year);

bufferedWriter.write(res);
bufferedWriter.newLine();

bufferedReader.close();
bufferedWriter.close();
}
}

Komentar

  1. Balasan
    1. because January month is defined as index '0' in java class

      Hapus
  2. Im so happy i solved this exercice hahah

    BalasHapus
  3. public static String findDay(int month, int day, int year) {

    Date date = new Date();
    date.setDate(day);
    date.setMonth(month-1);
    date.setYear(-1900 + year);
    SimpleDateFormat formatter =new SimpleDateFormat("EEEE ");
    String strDate = formatter.format(date).toUpperCase();

    return strDate;
    }

    BalasHapus
  4. @unknown why year(-1900+year) ?

    BalasHapus
  5. anyone can say how to solve with getDayOfWeek and LocalDate

    BalasHapus

Posting Komentar

Postingan Populer