你好,按照你的要求代码如下,给出了注释和运行结果,可以直接运行
import java.util.Scanner;
public class test2 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("请选择年份:");
int year = s.nextInt();// 输入的年
System.out.print("请选择月份:");
int month = s.nextInt();// 输入的月
s.close();
int days = 0;// 统计天数
for (int i = 1900; i < year; i++) {
days += getDaysByYear(i);
}
int[] days_each_month = new int[] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (isLeepYear(year)) {
days_each_month[1] = 29;
}
System.out.println("输入年份距离1900年1月1日的天数:" + days);
for (int i = 0; i < month - 1; i++) {
days += days_each_month[i];
}
System.out.println("输入月份距离1900年1月1日的天数:" + days);
System.out.println("当前月份的天数:" + days_each_month[month]);
}
// 获得某年的天数
private static int getDaysByYear(int year) {
if (isLeepYear(year)) {
return 366;
} else {
return 365;
}
}
// 判断是否是闰年
private static boolean isLeepYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
}
运行结果:
请选择年份:2011
请选择月份:5
输入年份距离1900年1月1日的天数:40542
输入月份距离1900年1月1日的天数:40662
当前月份的天数:30
循环就够了
先得到年的天数365*((2011-1900)-1)
在得到当前天数,date.now,然后如果是闰年+1,继续,直到不是,模运算按照整数+1
剩下的就是月了,递增就好了
_
一定要1990年的吗