计算某年某月某日是这一年的第几天

计算某年某月某日是这一年的第几天,需要考虑:

①每个月是大月(1、3、5、7、8、10、12月为大月,每个月31天),还是小月(4、6、9、11为小月,每个月30天);

②这一年是否为闰年,闰年的2月是29天,非闰年是28天。例如,输入的年月日为year、month、day,若month为1或2,则所求的第几天为day或31+day,若month>=3,则按这个月之前的各月的天数来计算:大月的天数+小月的天数+2月的天数(闰年29,非闰年28)+day。闰年的判断:能被4整除而不被100整除,能被400整除的年份为闰年。

import java.util.Scanner;

public class Ketang {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		System.out.print("请输入年,月,日:");
		int year=in.nextInt();
		int mouth=in.nextInt();
		int day=in.nextInt();
		int sumday=0;
		if(year%4==0&&year%100!=0&&mouth>2||year%400==0&&mouth>2)
		{
			sumday+=1;
		}
		switch(mouth-1)
		{
		case 12:sumday+=31;
		case 11:sumday+=30;
		case 10:sumday+=31;
		case 9:sumday+=30;
		case 8:sumday+=31;
		case 7:sumday+=31;
		case 6:sumday+=30;
		case 5:sumday+=31;
		case 4:sumday+=30;
		case 3:sumday+=31;
		case 2:sumday+=28;
		case 1:sumday+=31;break;
		default:System.out.println("您输入的年,月,日错误");
		}
		sumday+=day;
		System.out.println("是这一年的第"+sumday+"天");
		in.close();
	}

}

你可能感兴趣的:(java)