- 浏览: 1088995 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (453)
- Struts2 (30)
- Spring (14)
- iBATIS (6)
- Hibernate (13)
- JVM (5)
- JSON (10)
- Ajax (5)
- Flex (1)
- JavaScript (25)
- PowerDesigner (4)
- 项目管理 (7)
- 数据库 (29)
- 生活 (18)
- 软件应用 (21)
- 无线技术 (2)
- Linux (39)
- TOP开发学习 (2)
- JAVA工具小TIPS (2)
- Java通用 (52)
- XML (3)
- 软件测试 (29)
- Maven (10)
- Jquery (1)
- 正则表达式 (3)
- 应用服务器 (15)
- Android (5)
- linux 和windowx 下 tomcat 设置JVM (8)
- 应用服务器 连接池 (4)
- Linux 后台输出中文乱码 (1)
- Hadoop (28)
- python (2)
- Kafka (7)
- Storm (5)
- Elasticsearch (7)
- fddd (1)
最新评论
-
kafodaote:
Kafka分布式消息系统实战(与JavaScalaHadoop ...
分布式消息系统Kafka初步 -
小灯笼:
LoadRunner性能测试实战课程网盘地址:http://p ...
LoadRunner性能测试应用(八) -
成大大的:
Kafka分布式消息系统实 ...
分布式消息系统Kafka初步 -
hulalayaha2:
Loadrunner性能测试视频教程下载学习:http://p ...
LoadRunner性能测试应用(八) -
993042835:
搞好 谢谢
org.hibernate.exception.ConstraintViolationException: could not delete:
JAVA日期加减运算
文章分类:Java编程
1.用java.util.Calender来实现,这种实现方式才是非常准确的
-
public static String getBeforeDate(Date date,int days) { SimpleDateFormat df = new SimpleDateFormat(FORMAT_DAY); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.DAY_OF_YEAR,calendar.get(Calendar.DAY_OF_YEAR) - days); return df.format(calendar.getTime()); } public static String getAfterDate(Date date,int days) { SimpleDateFormat df = new SimpleDateFormat(FORMAT_DAY); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.DAY_OF_YEAR,calendar.get(Calendar.DAY_OF_YEAR) + days); return df.format(calendar.getTime()); }
2.用java.text.SimpleDateFormat和java.util.Date来实现
- public static String getBeforeDate(Date date,int days)
- {
- SimpleDateFormat df = new SimpleDateFormat(FORMAT_DAY);
- Date beforeDate = new Date(date.getTime() - days * 24 * 60 * 60 * 1000);
- return df.format(beforeDate);
- }
- public static String getAfterDate(Date date,int days)
- {
- SimpleDateFormat df = new SimpleDateFormat(FORMAT_DAY);
- Date beforeDate = new Date(date.getTime() + days * 24 * 60 * 60 * 1000);
- return df.format(beforeDate);
- }
我自己解决的问题--计算两个日期的天数差
楼主发表于:2009-05-11 01:25:53刚碰到这个问题以为很简单,只要把两个Date.getTime()相减,再/1000/60/60/24就可以了,但实作起来却发现有很大问题,就是小数问题。
开始以为只要把得到的数强制转换成Int型就可以了,但得到的答案却总是有错误,如:相邻的两天相差的天数经常是0点几,取整后变成相差0天了,但又不能简单的向上取整或直接将结果加1了事,因为如果让两个相等的日期进行比较,结果肯定是0和1之间的某个小数,如果向上取整或直接将结果加1结果就变成两个相同的日期却相差1天。经分析发现问题出在忽略了“时”“分”“秒”“毫秒”,原来我只是把注意力放在“日期”上,导致日期虽然正确,但具体的时、分、秒、毫秒被系统取作但前时间,由于系统延迟,两个日期的时、分、秒、毫秒又不相同,最后导致得数不能被整除。
针对问题所在我将参加比较的两个日期的时、分、秒、毫秒全部取为0,问题才圆满解决
public int Calculate(long date1,long date2){//计算目标日期date1与指针日期date2的天数差
long c = date2 - date1;
return (int)(c / 1000 / 60 / 60 / 24);
}
*********************************************************
public long fDate(Date date){//日期规范函数,用来规范Calculate的参数
ca = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
ca.setTime(date);
ca.set(Calendar.HOUR_OF_DAY, 0); //小时取0
ca.set(Calendar.MINUTE, 0); //分取0
ca.set(Calendar.SECOND, 0); //秒取0
ca.set(Calendar.MILLISECOND, 0); //毫秒取0
return ca.getTime().getTime();
}
个人签名
-------------------------------------
评论
直接calendar.add(Calendar.DAY_OF_YEAR,days)
就可以了,干啥这么复杂
...哦,我试试.
直接calendar.add(Calendar.DAY_OF_YEAR,days)
就可以了,干啥这么复杂
发表评论
-
java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
2013-05-10 16:10 817C:\Program Files (x86)\MyEc ... -
读取word pdf中的文字 用第三方组件 pdfbox 和 poi
2013-03-20 23:51 1002读取word pdf中的文字 用第三方组件 pdfbox 和 ... -
非常好使的FileUtil 类
2013-03-09 12:45 1001package com.zqk.util; imp ... -
eclipse 3.4.1 导入项目后 Target runtime Apache Tomcat v5.0 is not defi...
2012-05-29 09:27 1801下载最新版本eclipse3.4.1后,导入以前的项目,报 ... -
MyEclipse 6.5 序列号生成器
2011-06-10 09:47 1664import java.awt.event.ActionEve ... -
字节序 整形与字节数组转换
2010-12-15 13:43 2341Big Endian and Little Endian ... -
JPEG文件数据结构以及将位图保存为JPG的代码 转2
2010-12-02 13:31 2847三、实例分析 用系统自带的画图程序画一个32×24的红色方块 ... -
JPEG文件数据结构以及将位图保存为JPG的代码 转1
2010-12-02 13:30 3047JPEG文件数据结构以及将位图保存为JPG的代码一、简 ... -
Nginx+resin调优文档
2010-11-18 17:02 2300http://blog.liuts.com/post/204/ ... -
分析 Tomcat startup.bat 启动脚本
2010-11-03 14:53 3220分析 Tomcat startup.bat 启 ... -
Tomcat配置优化 转
2010-11-03 14:51 10671.精简Tomcat和配置文件1.1 .删除不需要的管理应用和 ... -
URLConnection 读取字节流
2010-10-27 13:15 32572008-11-08 山寨Wget实现又惹事了 h ... -
字节到整形的转换
2010-10-27 12:47 1418public byte[] intToByte(int i) ... -
Gif 文件格式分析
2010-10-27 11:45 1057GIF文档ˉˉˉˉˉˉ 1.概述~~~~~~~~ ... -
JPG文件格式解码图片高度和宽度的分析
2010-10-27 10:34 984413. 简单说一下 JPG 文件的解码 ---------- ... -
CSS制作多种链接样式
2010-10-15 11:54 1115多种链接样式制作方法 ... -
虚拟主机上给一个网卡设置多个IP地址
2010-10-13 17:22 1879配置虚拟主机时有一种方式是在一块网卡上绑定多个IP,操作如下: ... -
linux下一个网卡配置多个IP
2010-10-13 17:21 958文本控制台下面有netconfig,还有ifconfig工具, ... -
[转载]linux中sar的详细使用
2010-10-13 17:06 880在使用UNIX操作系统的过程中,我们常常 ... -
Linux中sar命令
2010-10-13 17:05 988Linux中sar命令 sar这东 ...
相关推荐
本文将深入探讨Java中的日期类操作,包括日期的加减运算,以及如何利用不同的日期类进行高效的时间管理。 ### 一、日期类的基本操作 #### 1. 使用Calendar类 `Calendar`类是Java中处理日期和时间的核心类之一,它...
在提供的文件列表中,DateAccount.java可能是包含日期操作逻辑的Java源代码文件,而加减日期.txt和转日期格式.txt很可能是详细说明这些操作的文本文件。通过阅读这些文件,你可以更深入地理解如何在实际代码中实现...
在Java 8之前,日期的加减运算相对复杂,通常需要结合`Calendar`类。自Java 8起,`TemporalAdjusters`和`Period`类提供了更直观的方法。 1. 使用`Calendar`类进行加减: ```java Calendar calendar = Calendar....
//字符串转日期 String format = simpleDateFormat.format(parse); //日期转字符串 System.out.println(parse +"fsgfsf"+format ); cal.setTime(parse); int year1= cal.get(Calendar.YEAR);//获取年份 ...
在实际开发中,日期加减常用于计算有效期、计划任务、日历应用等场景。例如,计算信用卡到期日、确定项目交付期限、规划节假日等。 10. **最佳实践**: 使用日期类时,应遵循良好的编程习惯,如避免使用字符串...
`java.util.Calendar`类提供了日期操作的高级功能,如`add()`方法可以对日期进行加减运算。例如,`now.add(Calendar.DAY_OF_YEAR, -(365*2))`表示减去两年。 8. **日期比较**: `equals()`, `before()`, `after()...
在日期运算中,`java.time`包提供了`plusDays()`, `minusMonths()`, `until()`等方法,使得日期的加减运算变得直观且方便。另外,`TemporalAdjusters`接口提供了一些实用的调整器,比如`firstDayOfMonth()`和`...
Java 8的日期时间API提供了丰富的日期运算方法,如加减天数、月份等。 7. **日期比较:** 可以通过compareTo方法比较两个日期对象的大小。 在"9_4_日期处理组件"的源代码中,可能会包含以上所述的转换功能,以及...
- 尽量避免在SQL中使用复杂的日期运算,而是将计算逻辑放在Java代码中,提高代码可读性和可维护性。 - 使用Joda-Time或Java 8的`java.time`包来处理日期,以获得更好的API和更精确的日期处理能力。 - 遵循数据库...
此外,`add()`方法可以进行日期加减操作,`getTime()`返回`Date`对象。 3. **`java.text.SimpleDateFormat`**: 这是日期/时间格式化类,用于将日期对象转换为字符串,或将字符串解析为日期对象。例如,`new ...
总之,"Java版日期计算器"是一个实现日期运算的工具,利用Java提供的日期API,可以方便地进行日期加减、计算日期差等操作。随着Java版本的更新,开发者应该优先考虑使用`java.time`包,因为它提供了更加简洁和强大的...
对于初学者而言,如何在现有的日期基础上进行加减运算可能会遇到一定的困难。本文将详细介绍如何利用`java.util.Calendar`类来实现日期的加减操作,并通过一个具体示例来展示其实现过程。 #### 二、Calendar类概述 ...
2. **日期运算**:C#的日期运算可以直接通过加减操作符完成,Java中需要使用`plusDays`, `minusMonths`等方法。 3. **字符串转换**:C#使用`ToString`方法,Java可以使用`DateTimeFormatter`进行格式化输出。 4. **...
可以使用 `java.util.Calendar` 类的 `add()` 方法来进行日期的加减运算。 ```java <%@ page import="java.util.*"%> <%@ page import="java.text.*"%> (); SimpleDateFormat formatter = new SimpleDateFormat("E ...
例如,你可以使用`LocalDateTime.now()`获取当前日期和时间,或者通过`plusDays()`、`minusHours()`等方法进行日期时间的加减运算。`DateTimeFormatter`类用于格式化和解析`java.time`对象,比`SimpleDateFormat`更...
9. **日期时间的加减运算**:使用`Calendar`的`add()`或`LocalDateTime`的`plus()`、`minus()`方法进行加减运算。 10. **时间戳转换**:`Date`的`getTime()`方法返回毫秒级时间戳,而`Date`构造函数或`Instant....
下面我们将深入探讨相关的Java日期处理知识。 Java中的日期和时间API主要有两个版本:一个是早期的`java.util.Date`和`java.util.Calendar`类,另一个是Java 8引入的`java.time`包,包含`LocalDate`, `LocalTime`, ...
例如,我们可以为`Calculator`类定义`add()`, `subtract()`, `multiply()`, 和 `divide()`方法,模拟加减乘除操作。 3. **控制流**:在计算器程序中,控制流(如if-else语句,switch-case,循环)用于决定何时执行...
这篇博客"Java日期转换"探讨了如何在Java中有效地进行日期的转换和操作。以下是对这个主题的详细阐述。 1. **基础概念** - **日期类**:在Java中,`java.util.Date`是最基本的日期类,它表示特定的瞬间,精确到...