Java戦闘3:日付を入力し、翌日の日付を表示します
要件:
設計プログラムは日付を入力し、翌日の日付を表示します。
コードは次のように表示されます。
import java.util.Scanner;
public class nextDate{
public static void main(String[] args){
int y,m,d; //年、月、日
int dnum = 0; //月里的天数
boolean isLeap = false; //是否为闰年
System.out.println("请输入年月日信息,格式为:年-月-日");
Scanner scanner = new Scanner(System.in);
//以字符串分割方式分离出年月日
String date = scanner.nextLine();
String ymd[] = date.split("-");//字符串分割,以“-”分割成好几个数组
y = Integer.parseInt(ymd[0]);//将字符串转为整形数
m = Integer.parseInt(ymd[1]);
d = Integer.parseInt(ymd[2]);
//用 if 语句判断输入的年、月是否合法,要求 0<y<9999
if(y<=0||y>=9999) {
System.out.println("年不合法!");
}
if(m<=0||m>=13) {
System.out.println("月不合法!");
}
//判断闰年
//闰年:1.能被400整除 2.能被4整除,但不能被100整除
if((y % 400 == 0)||(y % 4 == 0 && y % 100 != 0)){
isLeap = true;
}
//用 switch 语句判断月份,求出该月份的天数
//平年
if(isLeap==false){
switch(m) {
case 1:case 3:case 5:case 7:case 8:case 10:case 12:dnum=31; break;
case 4:case 6:case 9:case 11:dnum=30;break;
case 2:dnum=28;break;
}
}
//闰年
else{
switch(m) {
case 1:case 3:case 5:case 7:case 8:case 10:case 12:dnum=31; break;
case 4:case 6:case 9:case 11:dnum=30;break;
case 2:dnum=29;break;
}
}
//判断日期是否合法
if(d < 1 || d > dnum){
System.out.println("日期不合法!");
return;
}
//输出下一天
if(d != dnum){
d++;
}
else{
if(m == 12){
y++;
m = 1;
d =1;
}
else{
m++;
d = 1;
}
}
System.out.println("下一天:");
System.out.println(y + "-" + m + "-" + d);
}
}
演算結果:
1.正常
2.不正な入力:
3。うるう年: