Java中计算两个日期间的天数

简介:

jdk 8 以前

日期api是java.util.Date,要计算两个 Date 间的天数有如下几种方法:

  1. 通过两个日期间的毫秒数去除以每天的毫秒数,根据需要自行决定是否需要 + 1
        Date d1 = new Date(), d2 = new Date();
        int days = (int) ((d1.getTime() - d2.getTime()) / (24*3600*1000));
  1. 使用 Hutool工具包
        Date d1 = new Date(), d2 = new Date();
        int day2s = (int) DateUtil.betweenDay(d1, d2, false);
  1. 使用jodaTime工具包
Interval interval = new Interval(oldTime, new Instant());


jdk 8 以来

日期api变成了 java.time.LocalDate。除了你想把LocalDate转成Date然后像上面一样求解以外(当然不推荐了!),可以使用如下方法:

        LocalDate to = LocalDate.now();
        LocalDate from = to.withDayOfYear(1);
        int days = (int) ChronoUnit.DAYS.between(from, to);
目录
相关文章
|
4天前
|
Java
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
29 0
|
4天前
|
存储 Java
Java:编写程序,计算两个数的和、差、积、商和余数。docx
Java:编写程序,计算两个数的和、差、积、商和余数。docx
|
4天前
|
算法 Java
算法:Java计算二叉树从根节点到叶子结点的最大路径和
算法:Java计算二叉树从根节点到叶子结点的最大路径和
|
4天前
|
存储 Java
Java 编程实例:相加数字、计算单词数、字符串反转、元素求和、矩形面积及奇偶判断
Java中相加两个数字可通过简单赋值实现,如`int sum = x + y;`。若要用户输入数字相加,可使用`Scanner`类读取。计算单词数,可使用`split()`方法或`StringTokenizer`类。反转字符串,可用`for`循环或`StringBuilder`的`reverse()`方法。计算数组元素总和,可遍历数组累加。矩形面积通过长度乘以宽度得出。判断奇偶性,利用模2运算或位运算检查最低位。更多内容,可关注微信公众号`Let us Coding`。
50 0
|
4天前
|
Java
承压计算 Java
承压计算 Java
8 1
|
4天前
|
安全 Java
【亮剑】Java中的`Future`接口代表异步计算结果,常与`ExecutorService`配合启动任务并获取结果
【4月更文挑战第30天】Java中的`Future`接口代表异步计算结果,常与`ExecutorService`配合启动任务并获取结果。`Future`接口提供`isDone()`、`get()`、`get(timeout, unit)`和`cancel(mayInterruptIfRunning)`等方法。`FutureTask`是`Future`的实现类,可作为`Runnable`执行并返回结果。
|
4天前
|
Java
JAVA输入任意一个数字,实现递减求和(计算任意整数n的和)
JAVA输入任意一个数字,实现递减求和(计算任意整数n的和)
20 0
|
6月前
|
SQL 存储 Java
如何使用 Java 设计一个简单的成绩计算程序
如何使用 Java 设计一个简单的成绩计算程序
|
4天前
|
Java
Java计算每个月的天数
Java计算每个月的天数
|
4天前
|
机器学习/深度学习 算法 Java
Java计算阶乘递归函数的实现
Java计算阶乘递归函数的实现