HDU 2005 第几天?

题目链接:HDU 2005

Description

给定一个日期,输出这个日期是该年的第几天。

Input

输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。

Output

对于每组输入数据,输出一行,表示该日期是该年的第几天。

Sample Input

Sample Input
1985/1/20
2006/3/12

Sample Output

20
71

代码

import java.util.*;
class  Main
{
	
	public static void main(String[] args) 
	{
		int []m=new int[12];
		m[0]=31;m[1]=28;m[2]=31;m[3]=30;m[4]=31;m[5]=30;m[6]=31;m[7]=31;m[8]=30;m[9]=31;m[10]=30;m[11]=31;
		Scanner read=new Scanner(System.in);
		int [] a=new int[3];
		char []str=new char [20];
		while(read.hasNext()){
			boolean flag=false;
			a[0]=a[1]=a[2]=0;
			str=read.next().toCharArray();
			int v=0;
			int cut=0;
			while(v!=2){
             if(str[cut]!='/')
				 a[v]=a[v]*10+(int)str[cut]-48;
			 else v++;
			 cut++;
			}
			int ans=0;
			for(;cut<str.length;cut++)
				a[v]=a[v]*10+(int)str[cut]-48;
			if(a[0]%400==0||(a[0]%4==0&&a[0]%100!=0)){
				flag=true;
			}
			for(int i=0;i<a[1]-1;i++)
				ans+=m[i];
			if(flag==true&&a[1]>2)
				ans++;
			System.out.printf("%d",a[2]+ans);
			System.out.println();
		}
	}
}
posted @ 2018-09-19 23:27  Titordong  阅读(164)  评论(0编辑  收藏  举报