Java输入日期计算是这年的第几天:

思路

通过年份区分出是闰年还是平年,平年 2 月 28 天,闰年 2 月 29 天;

1、3、5、7、8、10、12 月份 31 天其余月份均为 30 天;

然后将每个月的天数相加即可,注意如果输入的是 12 月份,则是从 11 月份往前累加到1月份,1月份加的是输入的天数;

实现代码:import java.util.Scanner;

/**

* Created by xpf on 2018/6/22 :)

* GitHub:xinpengfei520

* Function:

*/

public class CalculateUtils {

/*平年二月28天*/

private static final int DAYS_28 = 28;

/*闰年二月29天*/

private static final int DAYS_29 = 29;

/*除了31天的月份其他均为30天*/

private static final int DAYS_30 = 30;

/*1、3、5、7、8、10、12月份31天*/

private static final int DAYS_31 = 31;

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.println("Please input year:");

int year = input.nextInt();

System.out.println("Please input month:");

int month = input.nextInt();

System.out.println("Please input day:");

int day = input.nextInt();

int daysInYear = getDaysInYear(year, month, day);

System.out.println("daysInYear:" + daysInYear);

}

/**

* get days in this year

*

* @param year

* @param month

* @param day

* @return

*/

public static int getDaysInYear(int year, int month, int day) {

int totalDays = 0;

switch (month) {

// 12 月份加的是11月份的天数,依次类推

case 12:

totalDays += DAYS_30;

case 11:

totalDays += DAYS_31;

case 10:

totalDays += DAYS_30;

case 9:

totalDays += DAYS_31;

case 8:

totalDays += DAYS_31;

case 7:

totalDays += DAYS_30;

case 6:

totalDays += DAYS_31;

case 5:

totalDays += DAYS_30;

case 4:

totalDays += DAYS_31;

case 3:

// 判断是否是闰年

if (((year / 4 == 0) && (year / 100 != 0)) || (year / 400 == 0)) {

totalDays += DAYS_29;

} else {

totalDays += DAYS_28;

}

case 2:

totalDays += DAYS_31;

case 1: // 如果是1月份就加上输入的天数

totalDays += day;

}

return totalDays;

}

}

因为只有2月份的天数和输入的 day 天数是不固定的,其他月份的天数是固定的,而固定的天数是可以通过输入的月份算出来,这样我们就可以这样计算:

2 月份的天数 + 输入的天数 + 计算出来的固定天数

更多java知识请关注java基础教程。

java 一年中的第几天_java中计算指定日期是一年的第几天的方法相关推荐

  1. 日是这一年的等几天Java代码_java中计算指定日期是一年的第几天的方法

    Java输入日期计算是这年的第几天: 思路 通过年份区分出是闰年还是平年,平年 2 月 28 天,闰年 2 月 29 天: 1.3.5.7.8.10.12 月份 31 天其余月份均为 30 天: 然后 ...

  2. java求圆的面积和周长_java中计算圆的面积和周长的代码要求使用get和set方法?...

    我这有写好的用get和set方法计算长方形的面积和周长的,我想圆的你也可以参照写,就是计算公式稍微修改一下就可以.代码如下:/** * 长方形类 */class Rectangle{ /** * 宽 ...

  3. java计算指定日期的上个月

    文章目录 java计算指定日期的上个月 Calendar类 API 代码实现 java计算指定日期的上个月 Calendar类 Calendar类是一个抽象类,可以为在某一特定时刻和一组之间的转换的方 ...

  4. 提供源码:java获取节假日、工作日,存入数据库,查找指定日期前一天,后一天。

    提供源码:java获取节假日.工作日,存入数据库,查找指定日期前一天,后一天. 码云地址: https://gitee.com/guyuanman/holiday 业务场景: 好多公司的业务在处理的时 ...

  5. java 一年中的第几天_Java计算某个日期是一年中的第几天

    比如2020年12月31日,是2020年的第366天.那么如何计算这个第几天呢? 首先当然是小学常识,给定的年份不是平年(一年365天),就是闰年(一年366天),平年1月到12月,每月分别有31, ...

  6. java 8位随机数_JAVA中生成指定位数随机数的方法总结

    JAVA中生成指定位数随机数的方法很多,下面列举几种比较常用的方法. 方法一.通过Math类 1 public static String getRandom1(intlen) {2 int rs = ...

  7. Java传统的io和nio区别_Java中IO和NIO的本质和区别

    简介 终于要写到java中最最让人激动的部分了IO和NIO.IO的全称是input output,是java程序跟外部世界交流的桥梁,IO指的是java.io包中的所有类,他们是从java1.0开始就 ...

  8. java无参_Java中无参无返回和无参带返回的类型方法

    在前面的文章中,我们学习了java中方法的定义.分类及调用的相关知识.知道了java中的方法其实可以叫做函数,目的是实现某些我们想要的功能,也知道了java中方法的分类共有四种:无参无返回.无参带返回 ...

  9. java static关键字的作用是什么_java中的static关键字

    一.static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个"伪全局"的概念,在Java中static表示"全局"或者 ...

最新文章

  1. 用python画四叶草代码-python turtle工具绘制四叶草的实例分享
  2. javascript系列-class10.DOM(下)
  3. 富文本编辑器 java_Java开发之富文本编辑器TinyMCE
  4. [Umbraco] 创建第一个页面
  5. ---WebCam网络摄像头6 编译WebCam
  6. 决策树编程python_Python如何制定决策:编程中的控制流简介
  7. rnn神经网络模型_ICLR 2019 | 与胶囊网络异曲同工:Bengio等提出四元数循环神经网络...
  8. Linux系统下poll的使用方式
  9. (转)任正非圣诞文章:千古兴亡多少事,一江春水向东流,为轮值CEO鸣锣开道...
  10. 台达触摸屏MODBUS直接与台达变频器通讯程序
  11. 安卓模拟器安装教程_雷电安卓模拟器v4.0.38绿色免安装版——墨涩网
  12. win64 oracle下载,oracle 11g 64位下载
  13. 微型计算机原理第三版第五章答案,微机原理第五章习题答案
  14. 谈谈扫码支付的实现流程
  15. 定义多边形类,继承产生矩形类和正多边形类
  16. HTML5中thead标签,【HTML5】table标签中thead、tbody、tfoot的作用
  17. 获取当前日期的上一个月和后三个月。
  18. 新零售线上+线下的完美营销
  19. 李喆:程序员到底怎么了
  20. DSN1COPY错误-SP映射页面错误

热门文章

  1. java爬树方法,荒野求生徒手爬树技巧
  2. 把不确定的长度的列表用逗号隔开
  3. 【网络协议笔记】TCP/UDP 协议整理
  4. pdf转换成word转换器官方版
  5. 全国计算机速录等级...,全国计算机速录等级考试.ppt
  6. 高端旗舰投影仪选购指南:当贝X3 Pro、当贝F5观影更沉浸!
  7. python日期和时间_Python日期和时间
  8. 苹果手机几月份最便宜_苹果手机哪款电池最耐用
  9. asp 采集系统_在微服务框架中添加SkyWalking+SkyApm-dotnet分布式链路追踪系统
  10. matplotlib如何设置xlabel以及ylabel的位置和大小