尝试使用printf打印2位数字秒和分钟,但我一直收到错误

时间:2015-09-27 01:34:02

标签: java printf

我在java中制作一个时钟,我必须打印2位数的分钟数和2位数的秒数。我正在使用printf来尝试打印这两个值,但我一直收到一个错误,说“非法声明”或“; exprected”。我做错了什么?

以下是我试图实施的代码,目前已失败。

public void printStandard() {
    int hours;

    if (hrs < 12) {
        System.out.printf(hrs + ":" + mins + ":" + %2d + "AM", secs);
    } else if (hrs > 12) {
        hours=hrs-12;
        System.out.printf(hours + ":" + mins + ":" + %2d+ "PM"), secs;
    } else if (hrs == 12) {
        System.out.printf(hrs + ":" + mins + ":" + %2d, secs + "PM");
    }
}

2 个答案:

答案 0 :(得分:2)

格式在双引号内。而不是

System.out.printf(hrs + ":" + mins + ":" + %2d + "AM", secs)

我觉得你想要像

这样的东西
System.out.printf("%02d:%02d:%02d AM%n", hrs, mins, secs);

另外,我认为你想将参数传递给你的方法。你可以使用常规else。像,

public void printStandard(int hrs, int mins, int secs) {
    if (hrs < 12) {
        System.out.printf("%02d:%02d:%02d AM%n", hrs, mins, secs);
    } else {
        System.out.printf("%02d:%02d:%02d PM%n", hrs - 12, mins, secs);
    }
}

答案 1 :(得分:2)

public void printStandard(int hrs, int mins, int secs) {
if (hrs < 12) {
    System.out.printf("%02d:%02d:%02d AM%n", hrs, mins, secs);
} else {
    System.out.printf("%02d:%02d:%02d PM%n", hrs - 12, mins, secs);
}

打印两位数。