4

我正在研究以下问题:

24 小时制的时间是一个 4 位数字,其中最左边的两位数字表示小时(0 到 23,包括),最右边的两位数字表示分钟(0 到 59,包括)。例如,2130 表示晚上九点半。写一个 Time 类来封装一个时间。它应该具有以下实例方法:

get 从键盘读取时间(以四位数字形式提供,例如 2130)。您可以假设该数字代表有效时间。

到目前为止,我的代码是:

import java.util.Scanner;
import java.io.*;

class Time {

private double hour, min;
Scanner scanner = new Scanner(System.in);

Time() {
    hour = 00;
    min = 00;
}

Time(double h, double m) {
    hour = h;
    min = m;
}

void get() {
    System.out.println("Please enter a time in 24 hour format: ");
    double x = scanner.nextDouble();
    hour = x / 100;
    min = x % 100;
    System.out.println("The time is " + hour + ":" + min);
}

public String toString() {
    return "Time: " + hour + min;
}
}

我遇到的问题是如何将 4 位输入分成小时和分钟,所有建议和提示都表示赞赏。

4

2 回答 2

11

对于4 位整数: x

x / 100 - gives the 2 left digits
x % 100 - gives the 2 right digits

编辑:假设这里的标题零被默默地省略,因为 0000 被转换为 0 作为整数,并且将产生小时 = 0(转换为 00),min = 0(转换为 00) - 正如它应该的那样。

于 2012-08-20T12:38:49.493 回答
6

读入输入作为String然后使用substring()方法来获取各个小时和分钟:

String s=scanner.nextLine();

String hours=s.substring(0,2);//hour
String minutes=s.substring(2,4);//min

System.out.println("The time is " + hours + ":" + minutes);
于 2012-08-20T12:38:34.557 回答