package com.zr.demo01;
import java.util.Scanner;
//输入某年某月某日,判断这一天是这一年的第几天
public class Second {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
//请输入年份
System.out.println("请输入年份:");
int year = scanner.nextInt();
//请输入月份
System.out.println("请输入月份:");
int month = scanner.nextInt();
//请输入日份
System.out.println("请输入日份");
int day = scanner.nextInt();
//调用totalCount方法计算总天数
int count=totalCount(year,month,day);
//输出天数
System.out.println("这一天是一年的第"+count+"天");
}
/**
* 计算这一天再这一年的第几天
* @param year
* @param month
* @param day
* @return
*/
private static int totalCount(int year, int month, int day) {
//总天数
int sum=0;
//判断是不是闰年
boolean b=isRunYear(year);
//for循环遍历到输入的月份的前一月
for (int i = 1; i < month; i++) {
switch (i) {
//1,3,5,7,8,10,12月有31天
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
sum=sum+31;
break;
//2月有闰月和平月
case 2:
sum=b?(sum+29):(sum+28);
break;
//4,6,9,11月有30天
case 4:
case 6:
case 9:
case 11:
sum=sum+30;
break;
}
}
//加上当前月的天数
sum=sum+day;
//返回总天数
return sum;
}
/**
* 判断是不是闰年
* @param year
* @return
*/
private static boolean isRunYear(int year) {
//判断是不是闰年
if ((year%4==0&&year%100!=0)||(year%400==0)) {
//是闰年,返回true
return true;
}else {
//是平年,返回false
return false;
}
}
}