java 根据传入日期获取上周五日期,忽略跨年
时间: 2023-07-18 11:13:51 浏览: 170
可以使用 Java 中的 Calendar 类来实现这个功能,具体步骤如下:
1. 获取传入日期的 Calendar 对象,并将其设置为传入日期。
2. 获取传入日期的星期几(1 表示星期天,2 表示星期一,以此类推)。
3. 将传入日期的 Calendar 对象往前推 1 天,直到星期几为星期五(5)为止。
4. 判断推回后的日期是否跨年,如果跨年则继续往前推,直到不跨年为止。
5. 返回推回后的日期。
以下是实现代码示例:
```java
import java.util.Calendar;
public class LastFridayFinder {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.set(2021, 0, 4); // 设置传入日期为 2021 年 1 月 4 日
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); // 获取传入日期的星期几
// 往前推日期直到星期五为止
while (dayOfWeek != Calendar.FRIDAY) {
calendar.add(Calendar.DATE, -1);
dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
}
// 判断日期是否跨年
int year = calendar.get(Calendar.YEAR);
while (year != 2021) {
calendar.add(Calendar.DATE, -7);
year = calendar.get(Calendar.YEAR);
}
System.out.println("上周五日期为:" + calendar.get(Calendar.YEAR) + "年" + (calendar.get(Calendar.MONTH) + 1) + "月" + calendar.get(Calendar.DATE) + "日");
}
}
```
在上面的代码中,我们首先设置传入日期为 2021 年 1 月 4 日,然后往前推日期直到星期五为止。接着判断日期是否跨年,如果跨年则继续往前推,直到不跨年为止。最后输出推回后的日期,即上周五的日期。
阅读全文