当前位置:   article > 正文

判断日期是否合法(Java精练版)_java判断日期是否合法

java判断日期是否合法

判断日期经常合法出现在IO场景下,下面将使用简练的思路和代码呈现给大伙!

实现思路:

1、声明并初始化一个整型数组,表示各个月中最大的天数,数组长度刚好为12(注意:该数组在平年条件下使用)

2、定义一个方法,判断用户输入的月份是否在[1,12]区间,然后再判断年份是平年还是闰年,最后根据年份的类型去判断天数是否正确(利用数组去判断)

这里大家可能有些疑问?

Q1 : 为什么使用数组代表最大天数?

A1:因为各个月的天数规律并不像月份那样明显(月份是递增序列),而利用数组表示天数可以达到一个以空间换时间的目的,减少的if else的分支代码。

完整代码如下:

  1. import java.util.Scanner;
  2. public class CheckDate{
  3. //各个月中最大天数
  4. private static int[] days = {31,28,31,30,31,30,31,31,30,31,30,31};
  5. public static void main(String[] args) {
  6. Scanner sc = new Scanner(System.in);
  7. System.out.println(judge(sc.nextInt(),sc.nextInt(),sc.nextInt()));
  8. }
  9. //判断日期合法性
  10. public static boolean judge(int year, int month, int day){
  11. //首先判断月份是否合法
  12. if (month >= 1 && month <= 12){
  13. //判断是否为闰年
  14. if ((year % 100 == 0 && year % 400 == 0) || year % 4 == 0){
  15. //判断当前月份是否为2月,因为闰年的2月份为29天
  16. if (month == 2 && day <= 29) return true;
  17. else {
  18. if (day <= days[month-1]) return true;
  19. }
  20. }else {
  21. if (day <= days[month-1]) return true;
  22. }
  23. }
  24. return false;
  25. }
  26. }

运行效果:2021为平年,2月只有28天,所以返回false

如果该篇文章对您有帮助,可以点个

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/52181
推荐阅读
相关标签