public static Date getNextMonday(Date date, int offset) { //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date); // 获得入参日期是一周的第几天 int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK); // 获得入参日期相对于下周一的偏移量(在国外,星期一是一周的第二天,所以下周一是这周的第九天) // 若入参日期是周日,它的下周一偏移量是1 int nextMondayOffset = dayOfWeek == 1 ? 1 : offset - dayOfWeek; // 增加到入参日期的下周一 cd.add(Calendar.DAY_OF_MONTH, nextMondayOffset); return cd.getTime(); }
时间: 2024-04-13 21:25:54 浏览: 16
这是一个用于获取下一个星期一的方法。它接受两个参数:一个是日期,另一个是偏移量。偏移量表示相对于当前日期的偏移天数,负值表示向前偏移,正值表示向后偏移。
方法的实现逻辑如下:
1. 首先,将传入的日期设置到一个 Calendar 对象中。
2. 获取传入日期是一周的第几天,使用 `Calendar.DAY_OF_WEEK`。
3. 根据传入日期的星期几,计算出相对于下一个星期一的偏移量。如果传入日期是星期日(`Calendar.SUNDAY`),则偏移量为1;否则,偏移量为 `offset - dayOfWeek`。
4. 将偏移量加到传入日期上,使用 `Calendar.add(Calendar.DAY_OF_MONTH, nextMondayOffset)`。
5. 返回计算后的日期。
这个方法可以用来获取下一个星期一的日期。你可以传入不同的日期和偏移量来获取不同的结果。
相关问题
// 创建一个 Calendar 实例 Calendar calendar = Calendar.getInstance(); // 将日期设置为今天 Date today = new Date(); calendar.setTime(today); // 将日期减去一天 calendar.add(Calendar.DAY_OF_MONTH, -1); // 获取新的日期 Date yesterday = calendar.getTime();输出
代码如下:
```
Calendar calendar = Calendar.getInstance(); // 创建 Calendar 实例
Date today = new Date(); // 获取今天的日期
calendar.setTime(today); // 将 Calendar 实例设置为今天的日期
calendar.add(Calendar.DAY_OF_MONTH, -1); // 将日期减去一天
Date yesterday = calendar.getTime(); // 获取昨天的日期
System.out.println("今天的日期:" + today);
System.out.println("昨天的日期:" + yesterday);
```
输出结果类似如下:
```
今天的日期:Tue Jul 27 10:35:09 CST 2021
昨天的日期:Mon Jul 26 10:35:09 CST 2021
```
Date startDate = calendar.getTime(); 怎么获得日期
`calendar.getTime()` 返回一个 `Date` 对象,表示该 `Calendar` 实例所代表的日期和时间。可以使用该对象获取日期。例如:
```java
// 获取当前日期
Calendar calendar = Calendar.getInstance();
Date currentDate = calendar.getTime();
System.out.println(currentDate); // 输出当前日期
// 获取指定日期
calendar.set(2021, Calendar.JANUARY, 1); // 设置为2021年1月1日
Date date = calendar.getTime();
System.out.println(date); // 输出2021-01-01
```
注意,`Calendar` 类的月份从0开始,即0表示1月。因此,上面的代码中`Calendar.JANUARY`表示1月份。