Problem Description
给定一个日期,输出这个日期是该年的第几天。
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input
1985/1/20
2006/3/12
Sample Output
20
71
虽然创建对象比较绕,但是工程项目里会经常用到,所以大家多多练习这种方法的使用。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
String str=sc.next();
MyDate d1=new MyDate(str);
System.out.println(d1.DayOfYear());
}
}
}
class MyDate{//创建对象
int year,month,day;
int months[]={31,28,31,30,31,30,31,31,30,31,30,31};
public MyDate(String str){
String strs[]=str.split("/");
year=Integer.parseInt(strs[0]);
month=Integer.parseInt(strs[1]);
day=Integer.parseInt(strs[2]);
}
public boolean isLeapYear(){//判断是否是闰年的函数
return year%400==0||year%4==0&&year%100!=0;
}
public int DayOfYear(){
int sum=0;
if(isLeapYear()){
months[1]=29;
}
for(int i=0;i<month-1;i++){
sum+=months[i];
}
return sum+day;
}
}