Java初学者作业——编写 Java 程序,在控制台中输入日期,计算该日期是对应年份的第几天。

需求说明:

编写 Java 程序,在控制台中输入日期,计算该日期是对应年份的第几天。

实现思路:

(1)声明变量 year、month和 date,用于存储日期中的年、月、日。

(2)声明变量 days,用于存储累加的天数。

(3)通过 Scanner 接收用户输入的日期,并为变量 year、month和 date 赋值。

(4)输入日期是当前输入年份的第几天的计算,包括两个部分天数的计算:1输入月份之前的所有月份天数的累加;2输入月份中已过天数累加。例如,输入日期2020年5月7日。先计算2020年1月份至4月份所有的天数,2020年1月对应的天数31天,2月份(2020年为闰年)对应的天数29天。3月份对应的天数31天,4月份天数30天,此时,不能包含五月的天数,2020年1月至4月所有的天数累加为121天。之后继续累加5月已过的天数7天,最终结果为2020年5月7日为当前年份的128天。

(5)根据天数累加计算规则,需要循环多次依次累加所输入月份之前的每个月份的天数,使用for循环结构实现。

①表达式。需要累加month之前的月份,声明变量i作为循环控制变量,根据运行效果,建议将i的初始值设置为1,所以可将for循环中3个表达式设置为:

表达式1:int i = 1
表达式2:i < month
表达式3:i++

②循环操作。使用switch结构,计算i对应月份的天数并进行累加,当i为2时,需要进行闰年判断。

(6)使用上一步计算的结果,继续累加输入月份已过的天数。

(7)使用 System.out.printlf(); 实现格式化输出运算结果。

实现代码:

import java.util.Scanner;

public class kkk {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		//年月日
		int year,month,date;
		int days = 0;		//天数
		//接收用户输入的年月日
		System.out.println("请输入日期:");
		year = sc.nextInt();
		month = sc.nextInt();
		date = sc.nextInt();
		//使用循环结构,依次累加每月的天数(不包括输入月份当中的月份)
		for(int i = 1; i < month; i++) {
			//使用switch结构,实现每月天数计算
			switch(i) {
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				days +=31;
				break;
			case 4:
			case 6:
			case 9:
			case 11:
				days +=30;
				break;
			case 2:
				//闰年判断
				if((year % 4 == 0 && year % 100!=0)||(year % 400 == 0)){
					days += 29;
					break;
				}else {
					days += 28;
					break;
				}
			}
		}
		//累加输入日期中当前月份已过的天数
		days += date;
		System.out.printf("%d年%d月%d日是当前年的第%d天",year,month,date,days);
    }
}
发布了34 篇原创文章 · 获赞 6 · 访问量 1757

猜你喜欢

转载自blog.csdn.net/weixin_44893902/article/details/104416402