Java获取指定时间的周一和周日

作为一名经验丰富的开发者,我非常乐意教会你如何使用Java获取指定时间的周一和周日。在这篇文章中,我将逐步引导你完成这个任务。

整个流程

我们可以将获取指定时间的周一和周日的流程分为以下几个步骤:

步骤 描述
1 输入指定时间
2 解析指定时间
3 计算指定时间所在周的周一和周日日期
4 格式化输出结果

接下来,我们将详细介绍每个步骤需要做什么,并提供相应的代码示例。

步骤一:输入指定时间

首先,用户需要输入一个指定的日期和时间,我们将使用Java的Scanner类来实现这一步骤。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入指定时间(格式:yyyy-MM-dd HH:mm:ss):");
        String dateTime = scanner.nextLine();
        // 用户输入的指定时间将保存在dateTime变量中
    }
}

步骤二:解析指定时间

接下来,我们需要将用户输入的指定时间解析为Java的Date对象,以便后续的计算和处理。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入指定时间(格式:yyyy-MM-dd HH:mm:ss):");
        String dateTime = scanner.nextLine();

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date date = sdf.parse(dateTime);
            // 解析后的日期对象将保存在date变量中
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

步骤三:计算指定时间所在周的周一和周日日期

现在,我们可以根据解析后的日期对象,通过一些计算得到指定时间所在周的周一和周日日期。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入指定时间(格式:yyyy-MM-dd HH:mm:ss):");
        String dateTime = scanner.nextLine();

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date date = sdf.parse(dateTime);

            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);

            // 计算周一的日期
            calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
            Date monday = calendar.getTime();

            // 计算周日的日期
            calendar.add(Calendar.DATE, 6);
            Date sunday = calendar.getTime();

            // 周一和周日的日期将保存在monday和sunday变量中
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

步骤四:格式化输出结果

最后,我们可以将计算得到的周一和周日日期格式化为指定的字符串格式,并输出给用户。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入指定时间(格式:yyyy-MM-dd HH:mm:ss):");
        String dateTime = scanner.nextLine();

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date date = sdf.parse(dateTime);

            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);

            // 计算周一的日期
            calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
            Date monday = calendar.getTime();

            // 计算周日的日期
            calendar.add(Calendar.DATE, 6);
            Date sunday = calendar.getTime();

            // 格式化输出结果
            SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd");
            String mondayStr = outputFormat.format(monday);
            String sundayStr = outputFormat.format(sunday);

            System.out.println("指定时间所在周的周一日期:" + mondayStr);
            System.out.println("指定时间所在周的周日日期:" + sundayStr);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}