本帖最后由 敗唫①輩ふ 于 2013-10-21 22:33 编辑
编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,并且计算出是一年中的第几天。
关于这个问题,我想知道还有没有更简单的方法的,有高手指点指点吗?我自己想出来的办法实在是麻烦。我自己的代码如下:
public class Test9 {
public static void main (String args[]){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入'yyyy-MM-dd'格式的日期:");
String date=scanner.next();
int num = getDays(date);
System.out.println(date+"是该年的第"+whichDay+"天");
System.out.println(date+"是该年的第"+num+"天");
public static int getDays(String dateStr){
String[] date = dateStr.split("-");//yyyy-MM-dd
int sum=0;
int year=Integer.valueOf(date[0]);
int month=Integer.valueOf(date[1]);
int day=Integer.valueOf(date[2]);
if ((year % 4 == 0 && year % 100 != 0)|| (year % 400 == 0 && year % 3200 != 0) || year % 86400 == 0) {
for (int i = 0; i < month; i++) {
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
sum += 31;
continue;
case 4:
case 6:
case 9:
case 11:
sum+=30;
continue;
case 2:
sum+=29;
continue;
}
}
}else{
for (int i = 0; i < month; i++) {
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
sum += 31;
continue;
case 4:
case 6:
case 9:
case 11:
sum+=30;
continue;
case 2:
sum+=28;
continue;
}
}
}
return sum+day;
我是通过闰年和平年来计算的。感觉这样好麻烦。求指点!
|