Java 如何以小时为单位计算时间并使周末返回无效消息
所以我需要做的是计算从周一到周五早上9点到下午6点的租车时间,然后存储这个 我已经尝试删除计算一天了,但仍然没有以正确的格式编译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;
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。。看看。。。(你的计算是否考虑了“时区”(夏冬变化)…“闰年/秒”?);