目录
Java 日期和时间计算 加减法变得简单
轻松使用 Java计算日期和时间的加减法下面的示例程序就是这样做的。
样本计划的特点如下。
- 返回当前日期/时间或任意日期/时间加上或减去指定时间的结果。
- 如果指定的是正数,则时间前进;如果指定的是负数,则时间后退。
例如,当前日期时间前 10 天。计算如果是这样,则适用以下规定。
Calendar cal = addMonth(-10);. - 年、月、日、小时、分钟、秒和毫秒时间字段可设置任意时间量。
此外,相对于指定时间计算如果需要,可将日历类作为参数传递。
例如,以下内容将从给定的日历实例向前推进一年。
Calendar cal = add("指定日历",1,0,0,0,0,0,0); - 如果每个时间字段的值超出其范围,下一个较大的时间字段将递增或递减。
例如,下面的命令会将当前时间提前一小时零五分钟。
Calendar cal = addMinute(65);.
示例程序
执行
在示例程序中,返回值为计算后日历对象,它保存日期的日期,因此可以通过 java.util.Calendar#getTime() 方法转换为 java.util.Date,然后再通过 java.text.SimpleDateFormat 转换为 java.util.Date。转换为日期字符串。
执行示例
public static void main(String[] args) { SimpleDateFormat f = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");. System.out.println("Current date/time = " + f.format(add(null,0,0,0,0,0,0,0,0).getTime()); System.out.println("1 年后的日期/时间 = "+ f.format(addYera(1).getTime()))); System.out.println("一个月前的日期/时间 = "+ f.format(addMonth(-1).getTime()))); System.out.println("3 小时后的日期/时间 = "+ f.format(addHour(3).getTime()))); System.out.println("30 小时前的日期/时间 = "+ f.format(addHour(-30).getTime()))); System.out.println("40 分钟后的日期/时间 = "+ f.format(addMinute(40).getTime()))); System.out.println("80 秒后的日期/时间 = "+ f.format(addSecond(80).getTime()))); System.out.println("1 个月前的日期/时间,4 天后 = "+ f.format(add(null,0,-1,4,0,0,0,0,0).getTime()))); }
执行结果
当前日期和时间为 25/03/2008:00:00:00。
当前日期/时间 = 25/03/2008 00:00:00 一年后的日期/时间 = 2009/03/25 00:00:00 一个月前的日期和时间 = 2008/02/25 00:00:00 3 小时后的日期/时间 = 2008/03/25 03:00:00 30 小时前的日期/时间 = 2008/03/23 18:00:00 40 分钟后的日期/时间 = 2008/03/25 00:40:00 80 秒后的日期/时间 = 2008/03/25 00:01:20 一个月前 4 天后的日期/时间 = 2008/02/29 00:00:00
*因为 2008 年是闰年,所以 2 月的结束日期是 29 日。
该示例程序来自 Chat&Messenger 的 "日历和日程安排功能该系统实际用于以下领域。