java编程!输入某年某月,判断这一年与这一月分别距离1900年1月1日多少天?

2024-12-23 15:53:19
推荐回答(3个)
回答1:

你好,按照你的要求代码如下,给出了注释和运行结果,可以直接运行

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

回答2:

循环就够了
先得到年的天数365*((2011-1900)-1)
在得到当前天数,date.now,然后如果是闰年+1,继续,直到不是,模运算按照整数+1
剩下的就是月了,递增就好了
_

回答3:

一定要1990年的吗