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);
    }
}
相关文章
|
1月前
|
Java 流计算
利用java8 的 CompletableFuture 优化 Flink 程序
本文探讨了Flink使用avatorscript脚本语言时遇到的性能瓶颈,并通过CompletableFuture优化代码,显著提升了Flink的QPS。文中详细介绍了avatorscript的使用方法,包括自定义函数、从Map中取值、使用Java工具类及AviatorScript函数等,帮助读者更好地理解和应用avatorscript。
利用java8 的 CompletableFuture 优化 Flink 程序
|
1月前
|
Java Apache Maven
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
文章提供了使用Apache POI库在Java中创建和读取Excel文件的详细代码示例,包括写入数据到Excel和从Excel读取数据的方法。
60 6
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
|
2月前
|
XML 存储 JSON
Java程序部署
Java程序部署
|
1月前
|
Java Maven 数据安全/隐私保护
如何实现Java打包程序的加密代码混淆,避免被反编译?
【10月更文挑战第15天】如何实现Java打包程序的加密代码混淆,避免被反编译?
52 2
|
1月前
|
安全 Java Linux
java程序设置开机自启
java程序设置开机自启
101 1
|
1月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
40 1
|
1月前
|
Java API
Java的日期类都是怎么用的
【10月更文挑战第1天】本文介绍了 Java 中处理日期和时间的三个主要类:`java.util.Date`、`java.util.Calendar` 和 `java.time` 包下的新 API。`Date` 类用于表示精确到毫秒的瞬间,可通过时间戳创建或获取当前日期;`Calendar` 抽象类提供丰富的日期操作方法,如获取年月日及时区转换;`java.time` 包中的 `LocalDate`、`LocalTime`、`LocalDateTime` 和 `ZonedDateTime` 等类则提供了更为现代和灵活的日期时间处理方式,支持时区和复杂的时间计算。
40 14
|
2月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
52 3
|
1月前
|
Java Python
如何通过Java程序调用python脚本
如何通过Java程序调用python脚本
30 0
|
1月前
|
JavaScript Java
Java 控制台VUE.JS的使用
Java 控制台VUE.JS的使用
19 0
下一篇
无影云桌面