【发布时间】:2020-09-27 05:09:23
【问题描述】:
我需要格式化一个日期(月、年),但我做不到。
问题是:
给定以下数据
年份:2016
月:12
日期:31
接下来 N 天:5
产生以下输出:
“12 月有多达 31 天”
“今天日期:2016 年 12 月 31 日”
“明天的日期:2017 年 1 月 1 日”
“还有 5 天:2017 年 1 月 5 日”。
我如何使用 switch 语句来格式化这些日期(按照我的老师的要求)?
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);
}
}
}
【问题讨论】:
-
你不使用开关;你使用
java.time并说Month.of(month)。Month可以告诉你它与length有多少天。 -
对不起兄弟,我的老师让我使用开关盒
-
@우렉Mazino - 请您的老师为练习
switch-case做一些其他作业,因为这样做容易出错且过于复杂。
标签: java