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

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

需求说明:


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

31.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);
    }
}
相关文章
|
25天前
|
Java 数据库 Android开发
图书销售系统【纯控制台】(Java课设)
图书销售系统【纯控制台】(Java课设)
22 1
|
25天前
|
Java 数据库 Android开发
学生寝室查寝打卡系统【纯控制台】(Java课设)
学生寝室查寝打卡系统【纯控制台】(Java课设)
24 2
|
15天前
|
Java Maven
【Java报错】显示错误“Error:java: 程序包org.springframework.boot不存在“
【Java报错】显示错误“Error:java: 程序包org.springframework.boot不存在“
35 3
|
1天前
|
人工智能 安全 Java
Java8 - LocalDateTime时间日期类使用详解
Java8 - LocalDateTime时间日期类使用详解
|
2天前
|
Java
网页运行java程序cheerpj
网页运行java程序cheerpj
27 0
|
3天前
|
安全 Java API
Java日期与时间
Java日期与时间
25 1
|
4天前
|
机器学习/深度学习 Java
Java作业
Java作业
9 0
|
17天前
|
Java BI
Java 获取周,月,年日期集合(统计图)
Java 获取周,月,年日期集合(统计图)
Java 获取周,月,年日期集合(统计图)
|
19天前
|
Java
java判断时间是否为节假日(或指定的日期),是的话返回true,否返回false
java判断时间是否为节假日(或指定的日期),是的话返回true,否返回false
22 0
|
25天前
|
存储 Java 关系型数据库
景区特色商品管理系统【控制台+MySQL】(Java课设)
景区特色商品管理系统【控制台+MySQL】(Java课设)
13 1