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
方法中,我们也测试了当curDate
为null
时的情况,以确保我们的异常处理逻辑正确无误。
这种校验机制确保了方法的健壮性,避免了由于无效输入而导致的意外错误。在生产环境中,这种健壮性尤其重要,因为它可以帮助你捕捉和处理潜在的错误情况,提高应用程序的稳定性和可靠性。
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}