java中时间偏移量方法

java中写一个方法返回java.util.Date类型,这个方法包括两个参数,一个参数是传进去的日期curDate字段,这个日期curDate字段也是java.util.Date类型的,还有一个参数是传入Integer类型的n字段,这个n字段可以是正数,也可以是负数,是正数就返回curDate日期字段加上n天的java.util.Date类型的时间,是负数就返回curDate日期字段减去n天的java.util.Date类型的时间

addOrSubtractDays方法中,我们首先检查curDate是否为null。如果是null,则抛出IllegalArgumentException异常,并附带一条描述性消息。在main方法中,我们也测试了当curDatenull时的情况,以确保我们的异常处理逻辑正确无误。

这种校验机制确保了方法的健壮性,避免了由于无效输入而导致的意外错误。在生产环境中,这种健壮性尤其重要,因为它可以帮助你捕捉和处理潜在的错误情况,提高应用程序的稳定性和可靠性。

import java.util.Calendar;
2import java.util.Date;
3
4public class DateUtil {
5
6    /**
7     * 根据给定的日期和天数偏移量,返回一个新的日期。
8     * 如果偏移量是正数,则返回未来的日期;
9     * 如果偏移量是负数,则返回过去的日期。
10     *
11     * @param curDate 当前日期,不能为null
12     * @param n 天数偏移量
13     * @return 新的日期
14     * @throws IllegalArgumentException 如果curDate为null
15     */
16    public static Date addOrSubtractDays(Date curDate, int n) {
17        if (curDate == null) {
18            throw new IllegalArgumentException("The current date cannot be null.");
19        }
20
21        Calendar calendar = Calendar.getInstance();
22        calendar.setTime(curDate);
23        calendar.add(Calendar.DAY_OF_MONTH, n);
24        return calendar.getTime();
25    }
26
27    public static void main(String[] args) {
28        // 测试用例
29        try {
30            Date today = new Date();
31            Date futureDate = addOrSubtractDays(today, 5);
32            Date pastDate = addOrSubtractDays(today, -3);
33
34            System.out.println("Today: " + today);
35            System.out.println("Future date (5 days ahead): " + futureDate);
36            System.out.println("Past date (3 days ago): " + pastDate);
37            
38            // 测试null输入的情况
39            Date nullDate = addOrSubtractDays(null, 5);
40        } catch (IllegalArgumentException e) {
41            System.out.println(e.getMessage());
42        }
43    }
44}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值