如何根据一个日期得到下天的算法

心血来潮,写了一个算法,娱乐一下自己

```java

import java.util.Arrays;import java.util.Date;import java.util.List;public class NextDate {public static void main(String[] args) {Date date = new Date();date.setYear(116);date.setMonth(11);date.setDate(31);System.out.println(nextDate(date).toLocaleString());}public static Date nextDate(Date date) {//long l = date.getTime();//return new Date(l+24*60*60*1000);if (date==null) {return null;}if (isYearEnd(date)) {return new Date(date.getYear()+1,0,1);}else if (isSecondMonthEnd(date) || isOhterMonthEnd(date)) {return new Date(date.getYear(),date.getMonth()+1,1);}else {return new Date(date.getYear(),date.getMonth(),date.getDate()+1);}}private static boolean isYearEnd(Date date){if(date.getMonth()==11 && date.getDate()==31){return true;}else{return false;}}private static boolean isSecondMonthEnd(Date date){if(date.getMonth()!=1){return false;}else if (isLeapYear(date)) {return date.getDate()==29;}else{return false;}}//private static boolean isLeapYear(Date date){int year = date.getYear();if(year%4==0 && !(year%100==0) || year%400==0){return true;}else {return false;}}private static boolean isOhterMonthEnd(Date date){ListbigMonthList = Arrays.asList(new Integer[]{0,2,4,6,7,9,11});

if(bigMonthList.contains(date.getMonth())){

return date.getDate() == 31;

}

else{

return date.getDate() == 30;

}

}

}

```

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、 1、请用Java写一个冒泡排序方法 【参考答案】 public static void Bubble(int...
    独云阅读 5,242评论 0 6
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,899评论 18 399
  • import java.text.SimpleDateFormat;import java.util.Calend...
    霙愔阅读 4,086评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • var regexEnum = { intege : "^-?[1-9]\\d*$", // 整数 intege1...
    a_foo阅读 4,952评论 0 4