package first; import java.util.Scanner; //通过键盘输入某年某月某日,计算并输出这一天是这一年的第几天。例如,2001年3月5日是这一年的第64天。 public class 年月日问题 { public static void main(String[] args) { int year,mouth,days; int day=0; //累计天数 int d=0; int e=0; Scanner scanner=new Scanner(System.in); do { System.out.println("请输入年:"); year=scanner.nextInt(); System.out.println("请输入月:"); mouth=scanner.nextInt(); System.out.println("请输入日"); days=scanner.nextInt(); if (mouth < 0 || mouth > 12 || days < 0 || days > 31) { System.out.println("输入错误!"); e = 1; } }while (e == 1); for (int i=1;i<mouth;i++){ switch (i){ case 1: case 3: case 5: case 7: case 8: case 10: case 12:{day=31;break; } case 4: case 6: case 9: case 11:{day=30;break;} case 2:{ /*闰年:1:非整百年数除以4,无余为闰,有余为平;2:整百年数除以400,无余为闰有余平 * 二月:平年28天、闰年29天*/ if ((year%100!=0 && year%4==0)||(year%100==0 &&year%400==0)){ day=29; }else { day=28; } } default:break; } d+=day; } System.out.println(year+"年"+mouth+"月"+days+"日是这一年的第"+(d+days)+"天。"); } }