问题描述:
输入一个日期,输出这个日期是该年的第几天
程序代码(一):
import java.util.Scanner;
public class Day {
public static void main(String[] args) {
System.out.print("Please enter a day:");
@SuppressWarnings("resource")
Scanner in = new Scanner(System.in);
int year = in.nextInt();
int month = in.nextInt();
int day = in.nextInt();
System.out.println(Days(year, month, day));
}
public static int Days(int y,int m,int d){
int i,sum=d;
for(i=1;i<=m-1;i++){
switch(i){
case 2:
sum+=((y%4==0&&y%100!=0)||y%400==0)?29:28;
break;
case 4:
sum+=30;
break;
case 6:
sum+=30;
break;
case 9:
sum+=30;
break;
case 11:
sum+=30;
default :
sum+=31;
break;
}
}
return sum;
}
}
运行结果:
Please enter a day:1995 11 23
327
程序代码(二):
import java.util.Scanner;
public class Day {
public static void main(String[] args) {
System.out.print("Please enter a day:");
@SuppressWarnings("resource")
Scanner in = new Scanner(System.in);
int year = in.nextInt();
int month = in.nextInt();
int day = in.nextInt();
System.out.println(Days(year, month, day));
}
public static int Days(int y,int m,int d){
int[] mont={0,31,28,31,30,31,30,31,31,30,31,30,31};
int i=0,sum=d;;
for(i=0;i<=m-1;i++){
if(i==2){
if((y%4==0&&y%100!=0)||y%400==0)
mont[i]=29;
}
sum+=mont[i];
}
return sum;
}
}
运行结果:
Please enter a day:2000 2 29
60
心得体会:
注意java中数组的初始化和C++中的区别!