- 浏览: 91815 次
- 性别:
- 来自: 深圳
最新评论
-
smilerain:
转换不完全,比如 "懿" 就转换失败,在生 ...
Java 根据汉字得到拼音 -
eppen:
买的企业版?
ftp上传下载 -
臧圩人:
xfire比较早,它已经发展到cxf了。
Java WebService 入门 -
scalong:
注释太少了
ftp上传下载 -
j2live:
你好,请教一下,一个contentProvider只能控制一张 ...
Android Content Provider的应用
在项目中经常遇到日期相减的业务,一下是几种日期想减的代码集合,希望对各位有帮助!
1.SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date= myFormatter.parse("2003-05-1");
java.util.Date mydate= myFormatter.parse("1899-12-30");
long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);
2. public int daysOfTwoDate(Date beginDate,Date endDate){
int days = 0;//两个日期之前的天数
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar beginCalendar = Calendar.getInstance();
Calendar endCalendar = Calendar.getInstance();
beginCalendar.setTime(beginDate);
endCalendar.setTime(endDate);
//计算天数
while(beginCalendar.before(endCalendar)){
days++;
beginCalendar.add(Calendar.DAY_OF_MONTH, 1);
}
return days;
3.
import java.util.*;
import java.text.*;
public class TestTime{
static int day=0;
static long d=0,l=0;
public static void main(String [] args){
long day=0;
TestTime a=new TestTime();
try{
day=(int)a.getCompareDate();
}catch(Exception se){
se.printStackTrace();
}
int ten=(int)day/10;
int gen=(int)day%10;
System.out.println(gen+"aa"+ten+"bb"+day);
}
public static long getCompareDate(){
Calendar cal = Calendar.getInstance();
//当前年月日
int year=cal.get(Calendar.YEAR);
int month=cal.get(Calendar.MONTH);
int date=cal.get(Calendar.DATE);
//System.out.println("年"+year+"月"+month+"日"+date);
cal.set(year, month, date);
Date date1=cal.getTime();
cal.set(2008,Calendar.AUGUST,8);
Date date2=cal.getTime();
l=(date2.getTime()-date1.getTime())/(24*60*60*1000);
return l;
}
}
4.
import java.util.Scanner;
public class TestDayNum {
private int startYear;
private int startMonth;
private int startDay;
private int endYear;
private int endMonth;
private int endDay;
private int outputStartYear; //保存输入结果,供输出时使用
private int outputStartMonth;
private int outputStartDay;
private int outputEndYear;
private int outputEndMonth;
private int outputEndDay;
private int dayNum;
private int tempYear;
private int tempMonth;
private int tempDay;
Scanner scanner = new Scanner(System.in);
public TestDayNum(){
System.out.println("请输入起始日期: ");
System.out.print("年: ");
startYear = scanner.nextInt();
outputStartYear = startYear;//输出时使用
System.out.print("月: ");
startMonth = scanner.nextInt();
outputStartMonth = startMonth;
System.out.print("日: ");
startDay = scanner.nextInt();
outputStartDay = startDay;
System.out.println("请输入结束日期: ");
System.out.print("年: ");
endYear = scanner.nextInt();
outputEndYear = endYear;
System.out.print("月: ");
endMonth = scanner.nextInt();
outputEndMonth = endMonth;
System.out.print("日: ");
endDay = scanner.nextInt();
outputEndDay = endDay;
}
private void countDayNum() {
if(this.startYear > this.endYear) {//起始年大于结束年,全部信息交换
this.tempYear = this.endYear;
this.endYear = this.startYear;
this.startYear = this.tempYear;
this.tempMonth = this.endMonth;
this.endMonth = this.startMonth;
this.startMonth = this.tempMonth;
this.tempDay = this.endDay;
this.endDay = this.startDay;
this.startDay = this.tempDay;
}
if(this.endYear == this.startYear){//若年相等
if(this.endMonth < this.startMonth) {//起始月大于结束月,信息转换
this.tempMonth = this.endMonth;
this.endMonth = this.startMonth;
this.startMonth = this.tempMonth;
this.tempDay = this.endDay;
this.endDay = this.startDay;
this.startDay = this.tempDay;
}
if(this.endMonth == this.startMonth){//若月相等
this.dayNum = Math.abs(this.endDay - this.startDay);//结果
}else {//年相等,月正确
/*先算出两个月份中间的月份有多少天*/
for(int i = this.startMonth + 1; i <= this.endMonth - 1; i++) {
this.dayNum += monthDayNum(i, this.startYear);
}
/*判断起始月的天数*/
int startMonthDayNum = monthDayNum(this.startMonth, this.startYear);
//加上起始月还剩下的天数
this.dayNum += startMonthDayNum - this.startDay + 1;
//加上结束月已经过了的天数
this.dayNum += this.endDay - 1;
}
}else {//年正确
/*算出年之间的天数*/
for(int i = this.startYear + 1; i <= this.endYear - 1; i++) {
if(isLeapyear(i)) {//如果是闰年
this.dayNum += 366;
}else{
this.dayNum += 365;
}
}
/*起始月距离该年结束的天数*/
for(int i = this.startMonth + 1; i <= 12; i++) {
this.dayNum += monthDayNum(i, this.startYear);
}
//判断起始月的天数
int startMonthDayNum = monthDayNum(this.startMonth, this.startYear);
//加上起始月还剩下的天数
this.dayNum += startMonthDayNum - this.startDay + 1;
/*结束月距离年初的天数*/
for(int i = 1; i <= this.endMonth - 1; i++) {
this.dayNum += monthDayNum(i, this.endYear);
}
//加上结束月已经过了的天数
this.dayNum += this.endDay - 1;
}
System.out.println(this.outputStartYear + "年" + this.outputStartMonth + "月"
+ this.outputStartDay + "日\n距离\n" + this.outputEndYear + "年"
+ this.outputEndMonth + "月" + this.outputEndDay + "日\n有\n"
+ this.dayNum + "天");
}
/**
* 计算是否是闰年
* @param year
* @return
*/
private boolean isLeapyear(int year)
{
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
return true;
}
return false;
}
/**
* 计算月份间的天数
*/
private int monthDayNum(int tempMonth, int tempYear) {
int dayNum = 0;
switch (tempMonth){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: dayNum += 31;
break;
case 4:
case 6:
case 9:
case 11: dayNum += 30;
break;
case 2: if(isLeapyear(tempYear)){
dayNum += 29;
}else{
dayNum += 28;
}
break;
default: break;
}
return dayNum;
}
/**
* @param args
*/
public static void main(String[] args) {
TestDayNum tdn = new TestDayNum();
tdn.countDayNum();
}
}
1.SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date= myFormatter.parse("2003-05-1");
java.util.Date mydate= myFormatter.parse("1899-12-30");
long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);
2. public int daysOfTwoDate(Date beginDate,Date endDate){
int days = 0;//两个日期之前的天数
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar beginCalendar = Calendar.getInstance();
Calendar endCalendar = Calendar.getInstance();
beginCalendar.setTime(beginDate);
endCalendar.setTime(endDate);
//计算天数
while(beginCalendar.before(endCalendar)){
days++;
beginCalendar.add(Calendar.DAY_OF_MONTH, 1);
}
return days;
3.
import java.util.*;
import java.text.*;
public class TestTime{
static int day=0;
static long d=0,l=0;
public static void main(String [] args){
long day=0;
TestTime a=new TestTime();
try{
day=(int)a.getCompareDate();
}catch(Exception se){
se.printStackTrace();
}
int ten=(int)day/10;
int gen=(int)day%10;
System.out.println(gen+"aa"+ten+"bb"+day);
}
public static long getCompareDate(){
Calendar cal = Calendar.getInstance();
//当前年月日
int year=cal.get(Calendar.YEAR);
int month=cal.get(Calendar.MONTH);
int date=cal.get(Calendar.DATE);
//System.out.println("年"+year+"月"+month+"日"+date);
cal.set(year, month, date);
Date date1=cal.getTime();
cal.set(2008,Calendar.AUGUST,8);
Date date2=cal.getTime();
l=(date2.getTime()-date1.getTime())/(24*60*60*1000);
return l;
}
}
4.
import java.util.Scanner;
public class TestDayNum {
private int startYear;
private int startMonth;
private int startDay;
private int endYear;
private int endMonth;
private int endDay;
private int outputStartYear; //保存输入结果,供输出时使用
private int outputStartMonth;
private int outputStartDay;
private int outputEndYear;
private int outputEndMonth;
private int outputEndDay;
private int dayNum;
private int tempYear;
private int tempMonth;
private int tempDay;
Scanner scanner = new Scanner(System.in);
public TestDayNum(){
System.out.println("请输入起始日期: ");
System.out.print("年: ");
startYear = scanner.nextInt();
outputStartYear = startYear;//输出时使用
System.out.print("月: ");
startMonth = scanner.nextInt();
outputStartMonth = startMonth;
System.out.print("日: ");
startDay = scanner.nextInt();
outputStartDay = startDay;
System.out.println("请输入结束日期: ");
System.out.print("年: ");
endYear = scanner.nextInt();
outputEndYear = endYear;
System.out.print("月: ");
endMonth = scanner.nextInt();
outputEndMonth = endMonth;
System.out.print("日: ");
endDay = scanner.nextInt();
outputEndDay = endDay;
}
private void countDayNum() {
if(this.startYear > this.endYear) {//起始年大于结束年,全部信息交换
this.tempYear = this.endYear;
this.endYear = this.startYear;
this.startYear = this.tempYear;
this.tempMonth = this.endMonth;
this.endMonth = this.startMonth;
this.startMonth = this.tempMonth;
this.tempDay = this.endDay;
this.endDay = this.startDay;
this.startDay = this.tempDay;
}
if(this.endYear == this.startYear){//若年相等
if(this.endMonth < this.startMonth) {//起始月大于结束月,信息转换
this.tempMonth = this.endMonth;
this.endMonth = this.startMonth;
this.startMonth = this.tempMonth;
this.tempDay = this.endDay;
this.endDay = this.startDay;
this.startDay = this.tempDay;
}
if(this.endMonth == this.startMonth){//若月相等
this.dayNum = Math.abs(this.endDay - this.startDay);//结果
}else {//年相等,月正确
/*先算出两个月份中间的月份有多少天*/
for(int i = this.startMonth + 1; i <= this.endMonth - 1; i++) {
this.dayNum += monthDayNum(i, this.startYear);
}
/*判断起始月的天数*/
int startMonthDayNum = monthDayNum(this.startMonth, this.startYear);
//加上起始月还剩下的天数
this.dayNum += startMonthDayNum - this.startDay + 1;
//加上结束月已经过了的天数
this.dayNum += this.endDay - 1;
}
}else {//年正确
/*算出年之间的天数*/
for(int i = this.startYear + 1; i <= this.endYear - 1; i++) {
if(isLeapyear(i)) {//如果是闰年
this.dayNum += 366;
}else{
this.dayNum += 365;
}
}
/*起始月距离该年结束的天数*/
for(int i = this.startMonth + 1; i <= 12; i++) {
this.dayNum += monthDayNum(i, this.startYear);
}
//判断起始月的天数
int startMonthDayNum = monthDayNum(this.startMonth, this.startYear);
//加上起始月还剩下的天数
this.dayNum += startMonthDayNum - this.startDay + 1;
/*结束月距离年初的天数*/
for(int i = 1; i <= this.endMonth - 1; i++) {
this.dayNum += monthDayNum(i, this.endYear);
}
//加上结束月已经过了的天数
this.dayNum += this.endDay - 1;
}
System.out.println(this.outputStartYear + "年" + this.outputStartMonth + "月"
+ this.outputStartDay + "日\n距离\n" + this.outputEndYear + "年"
+ this.outputEndMonth + "月" + this.outputEndDay + "日\n有\n"
+ this.dayNum + "天");
}
/**
* 计算是否是闰年
* @param year
* @return
*/
private boolean isLeapyear(int year)
{
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
return true;
}
return false;
}
/**
* 计算月份间的天数
*/
private int monthDayNum(int tempMonth, int tempYear) {
int dayNum = 0;
switch (tempMonth){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: dayNum += 31;
break;
case 4:
case 6:
case 9:
case 11: dayNum += 30;
break;
case 2: if(isLeapyear(tempYear)){
dayNum += 29;
}else{
dayNum += 28;
}
break;
default: break;
}
return dayNum;
}
/**
* @param args
*/
public static void main(String[] args) {
TestDayNum tdn = new TestDayNum();
tdn.countDayNum();
}
}
发表评论
-
搜索字符出现的次数
2012-05-28 16:34 0package com.taoniwu.io; impo ... -
Oracle 用户权限管理
2012-04-14 20:47 0我们将通过介绍命令的 ... -
通过JAVA获取优酷、土豆、酷6、6间房等视频
2012-04-01 11:34 0import org.jsoup.Jsoup; impo ... -
JAVA对文件和文件夹的操作
2012-02-06 14:22 976import java.io.File; impor ... -
得到某年某月的第一天和最后一天
2012-02-06 14:21 1182import java.text.SimpleDate ... -
批处理复制文件
2011-12-29 10:07 1072@echo 该批处理命令可完成对JAVA端WEB_ROOT ... -
批处理定时重启tomcat服务
2011-12-29 10:05 2153@echo 该批处理命令可完成重新启动tomcat服 ... -
java导出方法
2011-10-08 16:04 1100//导出方法 public void WriteToO ... -
LIst转换为String
2011-10-08 15:50 1211protected String listToString ... -
java 验证工具类
2011-10-06 13:01 1319package com.cn.wangk.util; ... -
事务配置
2011-08-17 09:23 755<bean id="SessionFa ... -
查找文件夹下面的文件
2011-07-13 23:04 0public List<File> listA ... -
ftp上传下载
2010-11-30 13:12 1190package com.ftp.example; i ... -
登录过滤器
2010-09-20 09:07 811/** * * @author li_yf ... -
Windows下svnserve安装及配置
2010-05-08 10:39 13541如果没有安装过 Subversi ... -
JFreeChart
2009-10-29 17:58 1551JFreeChart 折线图中,鼠标移动上去显示坐标信息。20 ...
相关推荐
实现两个数值型的日期相减得出天数的函数。
java 两个日期相减得到的天数、毫秒数;获取两个日期中的最大日期;获取两个日期中的最小日期。
上个实例改进 java实现两个日期相减得到中间的年份和月份日期
WinForm中界面日期相减(DateTimePicker控件)
计算两个日期相隔天数并减去节假日,这个可以使用在各种需要通知的场景以及工作日提醒等
两个日期相减获得之间的天数
广告位展示 数字日历 自定义对话框 日期相减 gallery广告位 相册上传
日期类Date包含日期的年、月、日三个数数据成员,编写一个友元函数,求两个日期之间相差的天数; 重要的是理顺:这个函数不是Date类的成员函数
主要介绍了C#实现两个时间相减的方法,实例分析了C#针对时间操作的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
NULL 博文链接:https://bijian1013.iteye.com/blog/2336179
里面有字符是否符时间期的两个函数,一个纯日期,还有一个加了时分秒。经测试可以用的
介绍了两日期相减,获得天数的小例子,有需要的朋友可以参考一下
DATE数据类型存储日历日期。DATETIME采用任何程度的精度(从年到秒的小数)记录时间点。INTERVAL数据类型存储一段时间:即持续时间。 DATE数据类型存储日历日期。DATE值实际上是带符号的整数,其内容解释为从1899年...
日期加天数,日期减天数得到一个新日期,及两个日期天数相减得到一个天数,纯C语言,不用time.h库,不要加其它库函数。
西门子博途1200 时间相减
MSSQL计算两个日期相差的工作天数的代码,需要的朋友可以参考下。
Delphi 计算两个日期之间的时间差(天数),面向Delphi初学者的源码,Delphi7源码下载。
Salesforce是CRM系统,Salesforce.com 是企业云计算公司。通过 Internet 为各种规模的企业提供业务应用程序。
把符合日期格式的字符串转换为日期类型;...两个日期相减;获得某月的天数;获取某年某月的天数;获取当前日期;获取当前月份;获取当前年份;返回日期的天;返回日期的月;返回日期的年;计算两个日期的相差的天数
可在日期上加上一个天数,或者两个日期相减算出中间相隔天数。