/**
* 计算前一天 、后一天
*
* @param date 当前输入的日期 格式为 2010-01-21
* @param amount
* @return
*/
public static String getYesterday(String date, int amount) {
String newDate = Constant.EMPTY_STRING;
if (date != null) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date dd;
try {
dd = format.parse(date);
Calendar calendar = Calendar.getInstance();
calendar.setTime(dd);
calendar.add(Calendar.DAY_OF_MONTH, amount);
newDate = format.format(calendar.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
}
return newDate;
}
/**
* 计算两天之间相差的天数 调用此方法必须保证 时间格式与 timeFormatStr指定格式一致 否则异常
*
* @param beginDate 开始时间
* @param endDate 结束时间
* @param timeFormatStr 输入时间格式
* @return int 时间相差天数
*/
public static int getCountDays(String beginDate, String endDate, String timeFormatStr) {
int days = 0;
if (beginDate != null && endDate != null && timeFormatStr != null) {
SimpleDateFormat dateFormat = new SimpleDateFormat(timeFormatStr);
Calendar beginCalendar = Calendar.getInstance();
Calendar endCalendar = Calendar.getInstance();
try {
endCalendar.setTime(dateFormat.parse(endDate));
beginCalendar.setTime(dateFormat.parse(beginDate));
while (beginCalendar.before(endCalendar)) {
days++;
beginCalendar.add(Calendar.DAY_OF_YEAR, 1);
}
} catch (ParseException e) {
// 日期格式异常
logger.error("getCountDays failed the" + beginDate + "or" + endDate + "is not format"
+ timeFormatStr, e);
}
}
return days;
}
/** 取近期一年的数据*/
public static List<String> getYears() {
List<String> result = new ArrayList<String>();
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, Integer.parseInt(DateUtil.getSysDate("yyyy")));
c.set(Calendar.MONTH, Integer.parseInt(DateUtil.getSysDate("MM")));
result.add(DateUtil.getSysDate("yyyyMM"));
for (int i = 0; i < 11; i++) {
c.add(Calendar.MONTH, -1);
int y = c.get(Calendar.YEAR);
int m = c.get(Calendar.MONTH);
if (m == 0) {
result.add((y - 1) + "12");
} else {
if (m < 10)
result.add(y + "0" + m);
else
result.add(y + (m + ""));
}
}
return result;
}
/** 取上个月 */
public static String getPrevMonth(String yearMonth) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
Calendar calendar = Calendar.getInstance();
Date curDate = java.sql.Date.valueOf(yearMonth + "-10");
calendar.setTime(curDate);
// 取得现在时间
// System.out.println(sdf.format(curDate));
// 取得上一个时间
calendar.set(Calendar.MONDAY, calendar.get(Calendar.MONDAY) - 1);
// 取得上一个月的下一天
calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + 1);
return sdf.format(calendar.getTime());
}
/** 取当月下的最后第一天 */
public static void getLastDay(String yearMonth) {
Calendar cal = Calendar.getInstance();
cal.setTime(java.sql.Date.valueOf(yearMonth + "-01"));
cal.roll(Calendar.DAY_OF_MONTH, -1);
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()));
}
/** 取当月下的第一天 */
public static void getFirstDay(String yearMonth) {
Calendar cal = Calendar.getInstance();
cal.setTime(java.sql.Date.valueOf(yearMonth + "-01"));
cal.set(Calendar.DAY_OF_MONTH, 1);
System.out.println(new SimpleDateFormat(DEFAULT_DATE_FORMAT).format(cal.getTime()));
}
/**
* 日期按小时加减
*
*/
public static void dateByHour(int hourNumber) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time="2016-08-02 20:00:00";
Date date=sdf.parse(time);
long nh = 1000*60*60*hourNumber;
//long nh = 1000*60*60*8;//8小时的毫秒数
long te=date.getTime()+nh;
sdf.format(te); //时间转换成字符
sdf.parse(sdf.format(te));//字符转换成时间
}
分享到:
相关推荐
Java 日期加减操作详解 Java 中对日期的加减操作是指对日期的加减、年、月、日、天等操作。Java 提供了多种方式来实现日期的加减操作,本文将详细介绍其中的两种方法。 使用 java.util.Calender 实现日期加减 ...
曾经我不太会日期类的算法,通过学习后总结了一些,有好用的东西是要分享给大家的,希望大家也能学的越来越好。
本文将深入探讨Java中的日期类操作,包括日期的加减运算,以及如何利用不同的日期类进行高效的时间管理。 ### 一、日期类的基本操作 #### 1. 使用Calendar类 `Calendar`类是Java中处理日期和时间的核心类之一,它...
日期加减天数后的日期 。。日期操作。。。初学者学习
课堂作业,一个类用于加减日期,有方法setDate(),SeeDate(),AddDate(),SeeDate()返回一个字符串,AddDate()用于增加或减少日期,可以处理公元前,只要在int范围内都可
在提供的文件列表中,DateAccount.java可能是包含日期操作逻辑的Java源代码文件,而加减日期.txt和转日期格式.txt很可能是详细说明这些操作的文本文件。通过阅读这些文件,你可以更深入地理解如何在实际代码中实现...
#### 一、利用`java.util.Calendar`进行日期加减 在Java中,`java.util.Calendar`是一个非常强大的类,用于处理与日期和时间相关的各种操作,包括日期的加减。`Calendar`类提供了一系列的方法来获取、设置和操作...
Java 中的 Calendar 类提供了日期和时间的操作功能,本文将对 Calendar 类的日期加减操作进行详细的介绍和分析。 Calendar 类的日期加减操作 Calendar 类的日期加减操作可以通过 set() 方法实现,例如,设置当前...
课程笔记:时间戳和int类型的数值进行加减,获得date类型的日期,及时间格式的转换
在实际开发中,日期加减常用于计算有效期、计划任务、日历应用等场景。例如,计算信用卡到期日、确定项目交付期限、规划节假日等。 10. **最佳实践**: 使用日期类时,应遵循良好的编程习惯,如避免使用字符串...
Java 日期算法大全 Java 中日期类操作算法大全是 Java ...Java 日期算法大全涵盖了日期类的基本操作、日期类的加减、日期类的格式化输出、日期类的计算等多个方面的知识点,为开发者提供了详细的Java日期算法指南。
例如,`SELECT add_months(date_column, 3) FROM table` 将会返回date_column字段的日期加3个月的结果。 在实际应用中,你可能还需要考虑一些复杂情况,如闰年、月份天数不一致等问题。对于UDF的实现,你可能需要...
7. 额外功能:某些实现可能包含其他特性,如日期范围选择、日期计算(加减日期)以及与数据库或其他数据源的集成。 在Java开发中,DateChooser控件可以使用第三方库来实现,比如JCalendar库中的JDateChooser,它是...
java 日期时间工具类 日期时间的加减 身份证号上的日期是否小于2岁等
3. **日期加减操作**: - `addDays(Date date, int days)`:在日期上增加或减少指定天数。 - `addMonths(Date date, int months)`:在日期上增加或减少指定月数。 - `addYears(Date date, int years)`:在日期上...
2. **使用roll()方法**:不会考虑日期边界,适用于精确控制日期加减,如需保持在同一个月,即使加上的天数超过当月天数也会停留在该月最后一天。 ```java cal.roll(Calendar.DATE, -4); // 减去4天 cal.roll...
3. **日期时间计算**:在旧API中,可以使用`Calendar`类进行日期时间的加减操作。例如,增加一天:`Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_MONTH, 1); Date newDate = calendar...
在Java 8之前,日期的加减运算相对复杂,通常需要结合`Calendar`类。自Java 8起,`TemporalAdjusters`和`Period`类提供了更直观的方法。 1. 使用`Calendar`类进行加减: ```java Calendar calendar = Calendar....
例如,可以使用`LocalDate.now()`获取当前日期,`LocalDate.plusDays()`进行日期加减等。 10. **时区处理**: 如果需要处理不同的时区,可以使用`ZoneId`和`ZonedDateTime`类,它们允许你在处理日期和时间时考虑到...
在日期运算中,`java.time`包提供了`plusDays()`, `minusMonths()`, `until()`等方法,使得日期的加减运算变得直观且方便。另外,`TemporalAdjusters`接口提供了一些实用的调整器,比如`firstDayOfMonth()`和`...