【发布时间】:2019-01-16 10:12:29
【问题描述】:
我想用java dateformat
计算时差时分不用户应该像这样输入 打卡时间:23:00 下班时间:01:00
预期输出应类似于 2 小时 00 分钟。
但是我该如何计算它们呢?
Scanner input = new Scanner(System.in);
//Read data
System.out.print("Clock In: ");
String sTimeIn = input.nextLine();
System.out.print("Clock Out: ");
String sTimeOut = input.nextLine();
// Process data
String sHourIn = sTimeIn.substring(0, 2);
String sMinuteIn = sTimeIn.substring(3, 5);
String sHourOut = sTimeOut.substring(0, 2);
String sMinuteOut = sTimeOut.substring(3, 5);
int iHourIn = Integer.parseInt(sHourIn);
int iMinuteIn = Integer.parseInt(sMinuteIn);
int iHourOut = Integer.parseInt(sHourOut);
int iMinuteOut = Integer.parseInt(sMinuteOut);
int sumHour =
int sumMinute =
//Display Output
System.out.print(sumHour +"Hour "+ sumMinute + " Minute");
}
}
在我查看了您提供的所有解决方案之后。这是我编辑的内容。但是我还是发现了一个问题,
如果 时钟在 23:00 时钟输出:01:00 并且输出是 22Hour(s) 0 Minute(s)。输出应该是02 Hour(s) 0 Minute(s)。
System.out.println("*Your time format must be 00:00");
System.out.print("Clock In: ");
String getTimeIn = input.nextLine();
System.out.print("Clock Out: ");
String getTimeOut = input.nextLine();
// Process data
String sHourIn = getTimeIn.substring(0, 2);
String sMinuteIn = getTimeIn.substring(3, 5);
String sHourOut = getTimeOut.substring(0, 2);
String sMinuteOut = getTimeOut.substring(3, 5);
int sumHour = Integer.parseInt(sHourIn) - Integer.parseInt(sHourOut);
int sumMinute = Integer.parseInt(sMinuteIn) - Integer.parseInt(sMinuteOut);
if(sumHour < 0) {
sumHour =-sumHour;
}
if(sumMinute < 0) {
sumMinute =- sumMinute;
}
//Display Output
System.out.print(sumHour +"Hour(s) "+ sumMinute + " Minute(s)");
【问题讨论】:
-
Time api中有Java提供的获取数据的方法,你为什么不用呢?
-
@Jens 我已经提到“不使用日期格式”
-
@GaryHooi 我没有提到日期格式。
-
@GaryHooi 是的,我已经看到了。但是因为我从来没有说过任何关于使用 dateformat 的事情,或者你在说什么,我不明白你的意思。