Java 日期类 获取指定周的周一和周日
1. 整体流程
下面是实现获取指定周的周一和周日的整体流程:
步骤 | 描述 |
---|---|
步骤 1 | 获取指定日期所在周的星期一的日期 |
步骤 2 | 获取指定日期所在周的星期日的日期 |
步骤 3 | 打印输出获取到的周一和周日的日期 |
2. 实现步骤
接下来,我们将逐步实现上述步骤,并提供相应的代码示例。
步骤 1: 获取指定日期所在周的星期一的日期
我们可以使用java.util.Calendar
类来获取指定日期所在周的星期一的日期。下面是具体的代码示例:
import java.util.Calendar;
public class DateUtils {
public static String getMondayOfTheWeek(String specifiedDate) {
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.MONDAY); // 设置每周的第一天为星期一
calendar.setMinimalDaysInFirstWeek(1); // 设置每年的第一周最少包含的天数
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); // 设置为当前周的星期一
calendar.set(Calendar.YEAR, Integer.parseInt(specifiedDate.substring(0, 4))); // 设置年份
calendar.set(Calendar.WEEK_OF_YEAR, Integer.parseInt(specifiedDate.substring(5, 7))); // 设置周数
return calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-" + calendar.get(Calendar.DAY_OF_MONTH);
}
}
在上述代码中,我们通过Calendar
类先获取当前的Calendar
实例,然后设置每周的第一天为星期一,设置每年的第一周最少包含的天数为1。接着,我们将日历设置为指定日期所在周的星期一,并返回该日期。
步骤 2: 获取指定日期所在周的星期日的日期
同样地,我们可以使用java.util.Calendar
类来获取指定日期所在周的星期日的日期。下面是具体的代码示例:
import java.util.Calendar;
public class DateUtils {
public static String getSundayOfTheWeek(String specifiedDate) {
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.MONDAY); // 设置每周的第一天为星期一
calendar.setMinimalDaysInFirstWeek(1); // 设置每年的第一周最少包含的天数
calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); // 设置为当前周的星期日
calendar.set(Calendar.YEAR, Integer.parseInt(specifiedDate.substring(0, 4))); // 设置年份
calendar.set(Calendar.WEEK_OF_YEAR, Integer.parseInt(specifiedDate.substring(5, 7))); // 设置周数
return calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-" + calendar.get(Calendar.DAY_OF_MONTH);
}
}
在上述代码中,我们通过Calendar
类获取当前的Calendar
实例,然后设置每周的第一天为星期一,设置每年的第一周最少包含的天数为1。接着,我们将日历设置为指定日期所在周的星期日,并返回该日期。
步骤 3: 打印输出获取到的周一和周日的日期
最后一步是打印输出获取到的周一和周日的日期。下面是具体的代码示例:
public class Main {
public static void main(String[] args) {
String specifiedDate = "2021-10-10"; // 指定日期,格式为YYYY-MM-DD
String mondayOfTheWeek = DateUtils.getMondayOfTheWeek(specifiedDate);
String sundayOfTheWeek = DateUtils.getSundayOfTheWeek(specifiedDate);
System.out.println("指定日期所在周的星期一:" + mondayOfTheWeek);
System.out.println("指定日期所在周的星期日:" + sundayOfTheWeek);
}
}
在上述代码中,我们先指定一个日期,然后调用DateUtils
类中的getMondayOfTheWeek
方法获取指定日期所在周的星期一的日期,再调用getSundayOfTheWeek
方法获取指定日期所在周的星期日的日期。最后,我们将这两个日期打印输出。