1. 程式人生 > >輸入一個年月日日期,給出上一天和下一天的日期

輸入一個年月日日期,給出上一天和下一天的日期

要求輸入一個代表年月日的8位整數,

  • 計算出其上一天和下一天是什麼日期
  • 2月分閏年和平年

這裡用的是if-else分支結構分情況計算上一天和下一天的日期

public class Demo {
	public static void main(String[] args) {
		/*System.out.println("請輸入一個代表年的4位數:");
		Scanner scan = new Scanner(System.in);
		int year = scan.nextInt();
		System.out.println("請輸入一個代表月的2位數:");
		int month = scan.nextInt();
		System.out.println("請輸入一個代表日的2位數:");
		int day = scan.nextInt();
		if(month ==2 && day ==28) {
			month++;
			day = 01;
		}
		if(day == 31) {
			month++;
			day = 1;
		}else {
			day++;
		}
		if(month == 12 && day == 31) {
			year++;
			month = 01;
			day = 01;
		}
		String lastDay = year+""+month+day;
		System.out.println("下一天是:"+lastDay);*/
		
		System.out.println("請輸入一個代表年月日的8位數:");
		Scanner scan = new Scanner(System.in);
		int year = scan.nextInt();
		int month = scan.nextInt();
		int day = scan.nextInt();
		if(month == 1 ) {
			if(day == 1) {
				System.out.println("上一天:"+(year-1)+"年"+(month-1)+"月"+"30日");
				System.out.println("下一天"+year+"年"+month+"月"+(day+1)+"日");
			}else if(day == 31) {
				System.out.println("上一天:"+year+"年"+month+"月"+(day-1)+"日");
				System.out.println("下一天"+year+"年"+(month+1)+"月"+"1日");
			}else {
				System.out.println("上一天:"+year+"年"+month+"月"+(day-1)+"日");
				System.out.println("下一天:"+year+"年"+month+"月"+(day+1)+"日");		
				}
		}else if(month == 4||month == 6|| month == 9 ||month == 11) {
			if(day == 1) {
				System.out.println("上一天:"+(year-1)+"年"+month+"月"+"31日");
				System.out.println("下一天"+year+"年"+month+"月"+(day+1)+"日");
			}else if(day == 30) {
				System.out.println("上一天:"+year+"年"+month+"月"+(day-1)+"日");
				System.out.println("下一天"+year+"年"+(month+1)+"月"+"1日");
			}else {
				System.out.println("上一天:"+year+"年"+month+"月"+(day-1)+"日");
				System.out.println("下一天:"+year+"年"+month+"月"+(day+1)+"日");	
			}
		}else if(month == 2) {
			if(year % 4 == 0 && year % 100 !=0 ||year % 400 ==0 ) {
				if(day == 1) {
					System.out.println("上一天:"+year+"年"+(month-1)+"月"+"31日");
					System.out.println("下一天"+year+"年"+month+"月"+(day+1)+"日");
				}else if(day == 29) {
					System.out.println("上一天:"+year+"年"+month+"月"+(day-1)+"日");
					System.out.println("下一天"+year+"年"+(month+1)+"月"+"1日");
				}else {
					System.out.println("上一天:"+year+"年"+month+"月"+(day-1)+"日");
					System.out.println("下一天"+year+"年"+month+"月"+(day+1)+"日");
				}
			}else {
				if(day == 1) {
					System.out.println("上一天:"+year+"年"+(month-1)+"月"+"31日");
					System.out.println("下一天"+year+"年"+month+"月"+(day+1)+"日");
				}else if(day == 28) {
					System.out.println("上一天:"+year+"年"+month+"月"+(day-1)+"日");
					System.out.println("下一天"+year+"年"+(month+1)+"月"+"1日");
				}else {
					System.out.println("上一天:"+year+"年"+month+"月"+(day-1)+"日");
					System.out.println("下一天"+year+"年"+month+"月"+(day+1)+"日");
				}
			}
			
		}else if(month == 3) {
			if(day == 1) {
				if(year % 4 ==0 && year % 100 !=0||year % 400 ==0) {
					System.out.println("上一天:"+year+"年"+(month-1)+"月"+"29日");
					System.out.println("下一天:"+year+"年"+month+"月"+(day+1)+"日");
				}else {
					System.out.println("上一天:"+year+"年"+(month-1)+"月"+"28日");
					System.out.println("下一天:"+year+"年"+month+"月"+(day+1)+"日");
				}
			}else if(day == 31) {
				System.out.println("上一天:"+year+"年"+month+"月"+(day-1)+"日");
				System.out.println("下一天:"+year+"年"+(month+1)+"月"+"1日");
			}else {
				System.out.println("上一天:"+year+"年"+month+"月"+(day-1)+"日");
				System.out.println("下一天:"+year+"年"+month+"月"+(day+1)+"日");
			}
			
		}else if(month == 5 || month == 7 || month == 10)  {
			if(day == 1) {
				System.out.println("上一天:"+year+"年"+(month-1)+"月"+"30日");
				System.out.println("下一天:"+year+"年"+month+"月"+(day+1)+"日");
			}else if(day == 31) {
				System.out.println("上一天:"+year+"年"+month+"月"+(day-1)+"日");
				System.out.println("下一天:"+year+"年"+(month+1)+"月"+"1日");
			}else {
				System.out.println("上一天:"+year+"年"+month+"月"+(day-1)+"日");
				System.out.println("下一天:"+year+"年"+month+"月"+(day+1)+"日");
			}
		}
		else if(month == 12) {
			if(day == 1) {
				System.out.println("上一天:"+year+"年"+(month-1)+"月"+"30日");
				System.out.println("下一天:"+year+"年"+month+"月"+(day+1)+"日");
			}else if(day == 31) {
				System.out.println("上一天:"+year+"年"+month+"月"+(day-1)+"日");
				System.out.println("下一天:"+(year+1)+"年"+"1月"+"1日");
			}else {
				System.out.println("上一天:"+year+"年"+month+"月"+(day-1)+"日");
				System.out.println("下一天:"+year+"年"+month+"月"+(day+1)+"日");
			}
		}
	}
}