`
superhanliu
  • 浏览: 50411 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

java date类型做加法发现的问题

阅读更多

oracle里面有个add_months函数可以对某个日期做加多少个月份的操作,对日期做加法更简单只需用+号就可以了。可是在java里面要实现日期加多少天,只能自己写个方法了。

一种途径是:

1 得到基准日期对应的毫秒数 a = date.getTime()

2 得到要加的天数的毫秒数 b = n天*每天毫秒数(t=24*60*60*1000)

3 c = a+b,然后返回new Date(c);

我一直采用这种方法,直到今天忽然发现不对劲。n=24还没问题,当n>=25时结果就不对劲变小了。

这实在太奇怪了,为什么呢?难道是jdk的bug?

几经测试,终于发现问题所在:

原来我定义 t=24*60*60*1000时前面的类型修饰符是int,这样t*24的时候没问题,t*25时就超过int的最大范围变成负数了,于是a+b的结果就变小了,从而最后相加了n天后的日期反而比基准日期小了。

分享到:
评论

相关推荐

    JAVA经典例子难得一见

    Java 支持两种类型的数据类型:基本数据类型和引用数据类型。 - **基本数据类型**:包括整数类型(byte、short、int、long)、浮点类型(float、double)、字符类型(char)和布尔类型(boolean)。 - **引用数据...

    Java语言程序设计:JAVA_3-运算符、表达式和语句.ppt

    而引用类型包括数组、类等,这些类型的变量需要通过实例化来分配内存空间,例如 `Date today = new Date();`。 三、运算符的分类和使用 Java 中的运算符可以分为算术运算符、赋值运算符、比较运算符、逻辑运算符等...

    introduction to java programming

    Java支持基本的算术运算符,如加法(+)、减法(-)、乘法(*)、除法(/)和取模(%)。 #### 决策制定:等式与关系运算符 在编程中,经常需要根据条件来做出决策。Java提供了多种逻辑和关系运算符,如等于(==)...

    java基础单词.docx

    Java中的设计模式是指解决常见问题的通用解决方案,例如工厂模式、观察者模式等。 Java中的开发环境是指用于编写、编译和运行Java程序的工具,例如Eclipse、NetBeans等。Java中的版本管理是指管理Java程序的不同...

    java 日期操作

    日期的计算,图书馆图书超期天数,日期加减法、date与String的转换

    实现了四则运算的java计算器源码

    在Java编程语言中,创建一个实现四则运算的计算器是一个常见的练习项目,它可以帮助开发者熟悉基本的输入输出处理、逻辑控制以及数学运算。本项目名为"MyCalculator",它旨在模仿Windows计算器的功能,不仅支持基本...

    date-adder:日期对象的加法机

    Date 对象的加法机。 此函数将返回一个新实例,而不是改变参数。返回一个新实例,不改变参数。用法执行示例 dateAdder ( new Date ( 2014 , 10 , 27 ) , { days : 1 } ) //Thu Nov 28 2014 00:00:00 GMT+0900 (JST)...

    Java实验四Java实验四.doc

    Java实验四 Java实验四.doc 本实验的主要目的是掌握Java中字符...本实验通过编写Java应用程序,掌握了String类、Date类、Calendar类和BigInteger类的常用方法,对Java字符串、日期、时间和大整数操作有了深入的了解。

    java基本程序设计

    - 通过解决这些问题,读者将学习到Java的基本数据类型及其相关主题,如变量、常量、数据类型、运算符、表达式以及输入输出。 2. **目标(Objectives)** - **编写简单的计算程序**:学会编写Java程序来执行基本的...

    Java后端面试题

    60. **short类型的加法问题**:`short`类型的变量与整数相加时,需要进行类型转换。 61. **Math.round()方法的行为**:`Math.round()`对正数进行四舍五入,对负数进行向下取整。 62. **Java中的goto**:Java没有...

    java基础知识学习教程-10常用类库.pptx

    Java 中提供了两个日期时间类:Date 和 Calendar,位于 java.util 包中。Date 类用于表示日期和时间,提供了多种构造方法和方法,如获取当前日期和时间、设置日期和时间等。Calendar 类是专门用于对日期进行操作的类...

    Java复习资料

    Java复习资料 本文档是关于Java复习资料的总结,涵盖了Java基础知识、数据库操作、SQL语句、Oracle和SQL Server的差异、日期时间函数等方面的知识点。 一、 Java基础知识 Java是一种面向对象的编程语言,允许...

    Java SE编程入门教程 java 常用API(共22页).pptx

    Java中的日期和时间处理主要通过`Date`、`DateFormat`和`SimpleDateFormat`以及`Calendar`类来完成。`Date`类用于表示特定时刻,`DateFormat`是用于格式化和解析日期的抽象类,而`SimpleDateFormat`是具体实现,...

    Java时间日期处理相关文档收藏

    在处理日期加一天的问题时,可以创建一个新的日期对象,然后调用相应的加法方法。 以下是一些示例代码: ```java import java.util.Calendar; import java.util.Date; import java.time.LocalDate; import java....

    java编程开发基础入门教程

    - Java提供了多个类用于处理日期和时间,如`java.util.Date`、`java.time.LocalDate`等。 - 新的时间API (`java.time`包) 更加强大且易于使用。 通过以上内容的学习,初学者可以对Java编程有一个全面的认识,并...

    java_NextDay

    在Java编程语言中,"NextDay"项目可能是一个软件测试作业,旨在教授学生如何使用日期和时间API来处理日期计算,比如找出给定日期之后的一天。在这个作业中,学生通常会被要求创建一个名为`NextDay`的程序,该程序...

    《Java 程序设计实验报告》

    8. **运算符与表达式**:计算年龄和成绩的平均值需要用到算术运算符(如加法、除法)和数组操作,展示了Java中运算符和表达式的应用。 9. **数组的使用**:在主类中,可能会使用数组存储多名学生的信息,然后遍历数...

Global site tag (gtag.js) - Google Analytics