计算一年的第几天
题目描述
今年的第几天?
输入年、月、日,计算该天是本年的第几天。
输入描述:
包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。
输出描述:
输入可能有多组测试数据,对于每一组测试数据,
输出一个整数,代表Input中的年、月、日对应本年的第几天。
示例1
输入
1990 9 20
2000 5 1
输出
263
122
代码:
import java.util.Scanner;
public class Main {
public static void main(String[]args)
{
Scanner sc=new Scanner(System.in);
Main main=new Main();
while(sc.hasNext()){
int year=sc.nextInt();
int month=sc.nextInt();
int day=sc.nextInt();
int days=0;
days=main.Days(year,month,day);
System.out.println(days);
}
}
public int Days(int year,int month,int day)
{
int days=0;
for(int i=1;i<month;i++)
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
{
days=days+31;
}
else if(i==2)
days=days+28;
else
days=days+30;
}
if(((year%4==0&&year%100==0)||year%400==0)&&month>2)
days=days+1;
days=days+day;
return days;
}
}
说明如下:
- 本解法直接用for循环完成,在此之前看到的许多解法都是switch或者数组等方式解决,几乎很少看到这种解法;
- 本解法用while循环可以多次循环。
- 总体来说,这是一道比较容易的题,并且代码可读性较强。
完毕 !!!