Problem Description
给定一个日期,输出这个日期是该年的第几天。
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
注意闰年的判断,以及对输入的处理
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
public class Main {
final static double pi = 3.1415927;
final static int count[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
public static boolean yes(int year)
{
if(year%100==0)
{
if(year%400==0)
return true;
return false;
}
else if(year%4==0)
return true;
return false;
}
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
String s = new String();
while(cin.hasNext())
{
int year=0,month=0,day=0;
s = cin.next();
int now = 0;
while(s.charAt(now)!='/')
{
year = year*10+(s.charAt(now)-'0');
now++;
}
now++;
while(s.charAt(now)!='/')
{
month = month*10+(s.charAt(now)-'0');
now++;
}
now++;
while(now<s.length())
{
day = day*10+(s.charAt(now)-'0');
now++;
}
//System.out.println(year+" "+month+" "+day);
int ans = 0;
for(int i=1;i<month;i++)
ans+=count[i];
ans+=day;
if(yes(year)==true&&month>2)
ans++;
System.out.println(ans);
}
}
}