public class CalendarTest {
/**
* 获取日期差值
* @param sdate1 起始日期
* @param sdate2 结束日期
* @param fmt 日期格式
* @param tz 时区
* @param 差值类型(1:天,2:周,3:月,4:年,5:小时)
* */
public static int getDateDiff(String sdate1,String sdate2,String fmt,TimeZone tz,int type) {
SimpleDateFormat df = new SimpleDateFormat(fmt);
Date date1 = null;
Date date2 = null;
try {
date1 = df.parse(sdate1);
date2 = df.parse(sdate2);
} catch (ParseException pe) {
pe.printStackTrace();
}
Calendar cal1 = null;
Calendar cal2 = null;
if (tz == null) {
cal1 = Calendar.getInstance();
cal2 = Calendar.getInstance();
} else {
cal1 = Calendar.getInstance(tz);
cal2 = Calendar.getInstance(tz);
}
// different date might have different offset
cal1.setTime(date1);
long ldate1 =
date1.getTime()
+ cal1.get(Calendar.ZONE_OFFSET)
+ cal1.get(Calendar.DST_OFFSET);
cal2.setTime(date2);
long ldate2 =
date2.getTime()
+ cal2.get(Calendar.ZONE_OFFSET)
+ cal2.get(Calendar.DST_OFFSET);
// Use integer calculation, truncate the decimals
int hr1 = (int) (ldate1 / 3600000); //60*60*1000
int hr2 = (int) (ldate2 / 3600000);
int days1 = (int) hr1 / 24;
int days2 = (int) hr2 / 24;
int hourDiff = hr2 - hr1;
int dateDiff = days2 - days1;
int weekOffset =
(cal2.get(Calendar.DAY_OF_WEEK)
- cal1.get(Calendar.DAY_OF_WEEK))
< 0
? 1
: 0;
int weekDiff = dateDiff / 7 + weekOffset;
int yearDiff = cal2.get(Calendar.YEAR) - cal1.get(Calendar.YEAR);
int monthDiff =
yearDiff * 12
+ cal2.get(Calendar.MONTH)
- cal1.get(Calendar.MONTH);
switch (type) {
case 1 :
return dateDiff;
case 2 :
return weekDiff;
case 3 :
return monthDiff;
case 4 :
return yearDiff;
case 5 :
return hourDiff;
default :
return 0;
}
}
public static void main(String[] args){
System.out.println(getDateDiff("2010-03-22","2011-03-27","yyyy-MM-dd",null,1));
}
}
分享到:
相关推荐
使用js计算日期之间的差值不使用内置方法,无兼容问题,建议JS新手学习使用
标签中的知识点:涉及到Js在获取日期时间方面相关的几个关键功能和方法,包括获取年份、月份、日、星期、时间等,以及日期时间的格式化方法。 详细知识点介绍: 1. 获取当前日期和时间: - JavaScript中的Date...
- 可以通过静态方法`now()`获取当前日期。 - 使用`of(int year, int month, int dayOfMonth)`方法指定年、月、日创建日期。 - `ofEpochDay(long epochDay)`根据历元日(从公元1970年1月1日到指定日期的总天数)...
3. **获取日期的各部分** - 可以通过 `DateTime` 对象的属性来获取年、月、日等信息,例如: ```csharp int year = DateTime.Now.Year; int month = DateTime.Now.Month; int day = DateTime.Now.Day; ``` 4....
它可能包含了获取用户输入的日期、解析日期字符串、计算日期差值并展示结果的逻辑。`README.txt`文件可能包含了关于如何使用这个脚本、输入格式以及输出的说明。 总的来说,JavaScript提供了强大的日期处理能力,...
在Windows环境下进行C语言编程时,获取日期和时间是一项常见的任务。这个类提供了一种方便的方式来获取和操作系统时间,而无需依赖MFC(Microsoft Foundation Classes)库中的CTime类。MFC虽然提供了丰富的功能,但...
10、获取当前日期减去参数天数之后的日期 11、判断传入年份是否为闰年 12、获得日期所在季度第一个月或最后一个月 13、在当前日期的基础上增加传入参数的天数 14、在当前日期的基础上增加传入参数的月数 15、在当前...
timespanjs 是实现日期差值的人性化显示的 Javascript 库。比如,可以显示成:2年2个月2小时4分钟23秒。同时支持国际化,可扩展。已经支持的语言: 中文简体(zh-cn) 中文繁体(zh-tw) ...
例如,可以将用户选择的日期传递给数据库进行记录,或者根据用户选择的日期执行特定的操作,如计算两个日期之间的差值。 总的来说,使用Month Calendar控件能够方便地实现用户友好的日期选择功能,通过处理其事件并...
- `datediff()`:计算两个日期之间的差值,如`datediff(yy, getdate(), '2008-08-08')`。 - `datename()` 和 `datepart()`:分别返回日期的某个部分的名称和数值。 在实际开发中,这些方法和属性可以灵活组合,...
在Android开发中,有时我们需要计算两个日期之间的差值,例如计算两个生日之间相差多少天,或者确定一个事件距离现在还有多少天。这个任务可以通过编程实现,本文将详细讲解如何在Android环境中获取两个日期相差的...
在处理日期时,我们常用的方法包括日期的创建、获取日期的各个组成部分(如年、月、日、时、分、秒)以及日期的比较。 在本例中,我们首先定义了两个日期字符串,s1代表我们需要比较的第一个日期,s2代表当前日期。...
可以通过`CTimeSpan`对象的成员函数来获取具体的时间单位差值,例如获取分钟数。 ```cpp int iMinute = timeSpan.GetMinutes(); ``` `GetMinutes()`函数返回的是时间差中分钟的数量。 ### 六、总结 通过上述步骤,...
要使用这个日期选择器,开发者需要将`index.html`、`script.js`、`style.css`以及`moment.js`引入到他们的项目中,并根据实际需求调整JavaScript代码以获取日期差值。如果需要自定义界面或者添加额外功能,可以对`...
最后,`DATEPART()`函数可以用来获取日期中的特定部分,例如`weekday`或`week`可以获取一周中的哪一天(1-7,1为星期日),`dw`同样可以获取星期几,而`week`或`wk`则返回一年中的第几周。 通过以上SQL语句,你可以...
此外,C#还提供了其他处理日期和时间的方法,例如计算两个日期之间的差值、格式化日期输出、解析日期字符串等。在实际开发中,我们常常会结合这些方法来处理日期相关的业务逻辑。 例如,如果你想要获取某个特定日期...
**功能:** 获取日期中的年份。 **参数:** date 类型的值。 **返回值:** Integer 类型,代表 date 参数中的年份,采用四位数字表示。若发生错误则返回 1900。 **用法示例:** 在 PowerBuilder 中,如果年份由两位...
3. **计算差值**:使用减法操作符 `-` 直接计算两个日期之间的差值。这将返回一个双精度浮点数,代表两个日期之间的总天数。 ```delphi var DiffDays: Double; DiffDays := Date2 - Date1; ``` 4. **处理结果*...
为了得到更精确的日期差值,Java 8引入了`java.time`包,其中的`LocalDate`、`LocalDateTime`和`Duration`类提供了更现代且易用的日期时间操作。如果你的项目使用的是Java 8及以上版本,推荐使用这些类。 总的来说...
在MySQL数据库中,获取两个时间之间的差值是一项常见的操作,特别是在数据分析、日志记录或时间戳处理等场景中。这个任务可以通过SQL查询语句轻松完成。以下将详细讲解如何使用MySQL来计算时间差值。 首先,我们...