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

返回本章节

返回作业目录

需求说明:

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

410ddbb753cdc16089c29bde9375456c.png

实现思路:

(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);

}

}

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值