Java 如何以小时为单位计算时间并使周末返回无效消息

Java 如何以小时为单位计算时间并使周末返回无效消息,java,Java,所以我需要做的是计算从周一到周五早上9点到下午6点的租车时间,然后存储这个 我已经尝试删除计算一天了,但仍然没有以正确的格式编译 public class Time { // Variables static Scanner kbinput = new Scanner(System.in); private static boolean error = false; private static String daysoftheweek;

所以我需要做的是计算从周一到周五早上9点到下午6点的租车时间,然后存储这个

我已经尝试删除计算一天了,但仍然没有以正确的格式编译

public class Time {

    // Variables

    static Scanner kbinput = new Scanner(System.in);

    private static boolean error = false;

    private static String daysoftheweek;            //  Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday;

    DateFormat sdf = new SimpleDateFormat("HH");
    // Keyboard for user input

    private int time;

    public static void main(String[] args) throws ParseException {

        System.out.println("Please enter day of your rental");
        daysoftheweek = kbinput.nextLine();
        System.out.println("Please enter day of your return");

        do {
            daysoftheweek = kbinput.nextLine();
            switch (daysoftheweek.toUpperCase()) {
                case "Monday":
                    error = false;
                    break;
                case "Tuesday":
                    error = false;
                    break;
                case "Wednesday":
                    error = false;
                    break;
                case "Thursday":
                    error = false;
                    break;
                case "Friday":
                    break;
                case "Saturday":
                default:
                case "Sunday":
            }

        } while (error);

        System.out.println("Please enter your start time (hh) ");

        String time = kbinput.nextLine();

        System.out.println();
        System.out.print("Enter finish time (hh) ");

        String time2 = kbinput.nextLine();

        DateFormat sdf = new SimpleDateFormat("hh");

        Date d1 = sdf.parse(time);
        System.out.println("Rental Time: " + sdf.format(d1));
    }
}

Java中的字符串比较区分大小写。行中:

switch (daysoftheweek.toUpperCase()) {
将用户的输入转换为全大写字符串,即“星期一”变为“星期一”。这永远不会匹配开关块中的任何情况


短期的解决办法是用大写字母替换所有的大小写。更可靠的方法是在一周中的几天内使用内置的。

在切换中仔细查看您的案例编辑代码,确保所有内容都包括在内,并澄清您的问题此代码编译您立即覆盖
daysoftheweek
,而不在切换中使用它,然后对字符串加上大小写,然后进行比较它适用于它们永远不会匹配的所有大小写混合字符串。java 8。。看看。。。(你的计算是否考虑了“时区”(夏冬变化)…“闰年/秒”?);