本题链接添加链接描述
本题解法:主要判断出这个年份是闰年还是平年就好。简单所以不讲述怎么判断。
import java.util.Date;
import java.util.Scanner;
public class Main {
public static int check(int a[],int year,int month,int day) {
if (year/400==0||(year%4==0&&year%100!=0)) {
a[2]=29;
if (month==1||month==3||month==5||month==7||month==8||month==10||month==12) {
if (day>=1&&day<=31) {
return 1;
}
}
if (month==4||month==6||month==9||month==11) {
if (day>=1&&day<=30) {
return 1;
}
}
if (month==2) {
if (day>=1&&day<=29) {
return 1;
}
}
}else{
a[2]=28;
if (month==1||month==3||month==5||month==7||month==8||month==10||month==12) {
if (day>=1&&day<=31) {
return 1;
}
}
if (month==4||month==6||month==9||month==11) {
if (day>=1&&day<=30) {
return 1;
}
}
if (month==2) {
if (day>=1&&day<=28) {
return 1;
}
}
}
return -1;
}
public static int getOut(int a[],int year,int month,int day){
int flag=1;
flag=check(a,year, month, day);
if (flag==1) {
int count=0;
for(int i=1;i<month;i++){
count+=a[i];
}
count+=day;
return count;
}
return flag;
}
public static void main(String[] args) {
int a[]=new int[]{0,31,28,31,30,31,30,31,31,30,31,30,31};
int year = 0,month = 0,day = 0;
Scanner scanner=new Scanner(System.in);
while(scanner.hasNext()){
year=scanner.nextInt();
month=scanner.nextInt();
day=scanner.nextInt();
System.out.println(getOut(a,year, month, day));
}
}
}