试题 算法训练 天数计算
要求:
编写函数求某年某月某日(**** ** **)是这一年的第几天 。提示:要考虑闰年,闰年的2月是29天(闰年的条件:是4的倍数但不是100的倍数,或者是400的倍数)。编写主函数,输入年月日,测试该函数并输出结果。
输入格式:
按“yyyy mm dd"的格式输入年月日
输出格式:
输出一个整数形式的计算结果
样例输入:
1990 5 10
样例输出:
130
数据规模和约定:
根据实际输入合法的日期
代码:
import java.util.Scanner;
public class 天数计算
{
// 定义函数计算天数
public static int Day(int year, int month, int day) {
int sum = 0;
for (int i = 1; i < month; i++)
{
switch (i)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
sum += 31;
break;
case 4:
case 6:
case 9:
case 11:
sum += 30;
break;
case 2:
//判断是否为闰年
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
sum += 29;
} else
{
sum += 28;
}
default:
break;
}
}
//返回当前年的值
return sum + day;
}
public static void main(String[] args) {
// 编写函数求某年某月某日(**** ** **)是这一年的第几天 。提示:要考虑闰年,
// 闰年的2月是29天(闰年的条件:是4的倍数但不是100的倍数,或者是400的倍数)。
// 编写主函数,输入年月日,测试该函数并输出结果。
Scanner sc = new Scanner(System.in);
//输入年月日
int year = sc.nextInt();
int month = sc.nextInt();
int day = sc.nextInt();
System.out.println(Day(year, month, day));//调用函数并且输出
}
}
样例输入:
1990 5 10
样例输出:
130