I need to format a date (month, year), but I can't do it correctly.
The problem is:
Given the following data
Year: 2016
Month: 12
Date: 31
Next N days: 5
Produce the following output:
"December has as many as 31 days"
"Today date: December 31st 2016"
"Tomorrow's date: January 1, 2017"
"5 days to go: January 5, 2017".
How can I format those dates by using a switch statement (as requested by my teacher)?
import java.util.Scanner;
import javax.lang.model.util.ElementScanner6;
public class TugasNo4 {
public static void main(String[] args) {
int years, month, date, nday;
String monthname = "";
Scanner input = new Scanner(System.in);
System.out.print("Tahun: ");
years = input.nextInt();
System.out.print("Bulan: ");
month = input.nextInt();
System.out.print("Tanggal: ");
date = input.nextInt();
if(date <= 0){
System.out.println("Anda memasukkan tanggal yang salah!");
input.close();
}
System.out.print("N hari kedepan: ");
nday = input.nextInt();
switch(month){
case 1:
monthname = "Januari";
System.out.println(monthname+" memiliki hari sebanyak 31 hari");
break;
case 3:
monthname = "Maret";
System.out.println(monthname+" memiliki hari sebanyak 31 hari");
break;
case 5:
monthname = "May";
System.out.println(monthname+" memiliki hari sebanyak 31 hari");
break;
case 7:
monthname = "July";
System.out.println(monthname+" memiliki hari sebanyak 31 hari");
break;
case 8:
monthname = "Agustus";
System.out.println(monthname+" memiliki hari sebanyak 31 hari");
break;
case 10:
monthname = "Oktober";
System.out.println(monthname+" memiliki hari sebanyak 31 hari");
break;
case 12:
monthname = "Desember";
System.out.println(monthname+" memiliki hari sebanyak 31 hari");
break;
case 4:
monthname = "April";
System.out.println(monthname+" memiliki hari sebanyak 30 hari");
break;
case 6:
monthname = "Juni";
System.out.println(monthname+" memiliki hari sebanyak 30 hari");
break;
case 9:
monthname = "September";
System.out.println(monthname+" memiliki hari sebanyak 30 hari");
break;
case 11:
monthname = "November";
System.out.println(monthname+" memiliki hari sebanyak 30 hari");
break;
case 2:
monthname = "Februari";
if((years % 4 == 0) && !(years % 100 == 0))
System.out.println(monthname+" memiliki hari sebanyak 29 hari");
else
System.out.println(monthname+" memiliki hari sebanyak 28 hari");
break;
default:
System.out.println("Anda memasukkkan bulan yang salah");
break;
}
System.out.println("Hari ini tanggal: "+date+" "+monthname+" "+years);
int datebesok = date + 1;
System.out.println("Besok tanggal "+datebesok+" "+monthname+" "+years);
int datenday = date + nday;
if((month == 2) && (datenday <= 28) && (datenday <= 29)){
System.out.println(nday+" hari lagi tanggal: "+datenday+" "+monthname+" "+years);
}
}
}