您的位置:首页 > 编程语言 > Java开发

杭电ACM2005题(第几天?)------Java语言

2016-10-06 13:52 465 查看

第几天?

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 127309    Accepted Submission(s): 46234


[align=left]Problem Description[/align]
给定一个日期,输出这个日期是该年的第几天。
 

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

[align=left]Output[/align]
对于每组输入数据,输出一行,表示该日期是该年的第几天。
 

[align=left]Sample Input[/align]

1985/1/20
2006/3/12

 

[align=left]Sample Output[/align]

20
71

import java.util.*;
class Main{
public static void main (String args[]){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String str = sc.nextLine();
String[] date = str.split("/"); //解析出 年 月 日
int n = Integer.parseInt(date[0]);
int y = Integer.parseInt(date[1]);
int r = Integer.parseInt(date[2]);
int t = 0;//<span style="font-family: Arial, Helvetica, sans-serif;">是一月份就只要加日,是二月份就要把第一月份的天数(31)加上再加上日,是三月份就要把第一、二月份的天数(31+28)再加上日以此推</span>
switch(y){
case 1 : t+=r;break;
case 2: t+=31+r;break;
case 3: t+=59+r;break;
case 4: t+=90+r;break;
case 5: t+=120+r;break;
case 6: t+=151+r;break;
case 7: t+=181+r;break;
case 8: t+=212+r;break;
case 9: t+=243+r;break;
case 10: t+=273+r;break;
case 11: t+=304+r;break;
case 12: t+=334+r;
}
if((n%400==0||(n%4==0&&n%100!=0))&&y>2)<span style="font-family: Arial, Helvetica, sans-serif;">//闰年判断,闰年要多加一天</span>
System.out.println(t+1);
else System.out.println(t);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  acm java