- /* 要求:输入某年某月,判断这一年与这一月分别距离1898年1月1日多少天
- */
- import java.util.Scanner;
- class Test{
- //判断输入的年份是否是闰年,是返回真,不是则返回假
- public static boolean isLeepYear(int year){
- return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
- }
- //获取这一年的天数
- public static int getDaysByYear(int year) {
- if (isLeepYear(year))
- return 366;
- else
- return 365;
- }
- 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(); // 输入月
- int days=0; //统计天数
- //定义一个整数数组,用来存储每个月的天数
- int[] monthly={ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
- //判断这一年是否是闰年,是则将数组中的序标为1的数值改为29;
- if(isLeepYear(year)){
- monthly[1]=29;
- }
- //计算输入的年数距离1898年的天数
- for(int i=1898;i<year;i++){
- days+=getDaysByYear(year);
- }
- //计算输入的月份到1月的天数
- for(int j=0;j<=month-1;j++){
- days+=monthly[j];
- }
- System.out.println(year+"年"+month+"月距离1898年1月1日天数为:"+days);
- }
- }
复制代码
|