java - 如何使用日历减去不同的时间单位

标签 java time timer calendar subtraction

是否有一种使用 Calendar 类减去不同时间单位的便捷方法? 我正在制作一个计时器,可以倒计时多个小时,并将时间以小时、分钟和秒为单位打印到控制台。我不想在这个程序中使用任何库,例如 Joda Time。我还想使用 Calendar 类,而不是 Date 类,除非太难。

这是我当前的代码,它只打印剩余时间(以秒为单位):

import java.awt.*;
import java.util.*;

public class ClickWhen {
    public static void main(String[] args) throws AWTException {
        int minGoal = 30;
        int hourGoal = 6+12;
        Calendar time = Calendar.getInstance();
        int minute = time.get(Calendar.MINUTE);
        int hour = time.get(Calendar.HOUR_OF_DAY);
        int second = time.get(Calendar.SECOND);
        int sRemaining = (minGoal*60+hourGoal*3600)-(second+minute*60+hour*3600);
        boolean isGoing = true;
        Robot r = new Robot();
        while(isGoing) {
            r.delay(1000);
            time = Calendar.getInstance();
            minute = time.get(Calendar.MINUTE);
            hour = time.get(Calendar.HOUR_OF_DAY);
            second = time.get(Calendar.SECOND);
            if(hour >= hourGoal && minute >= minGoal) {
                // do something
                isGoing = false;
            }
            if(hour >= 12) {
                System.out.println(hour-12+":"+minute+":"+second+" P.M.");
            }
            if(hour < 12) {
                System.out.println(hour+":"+minute+":"+second+" A.M.");
            }
            sRemaining--;
            System.out.println("Seconds Remaining: "+sRemaining);
        }
    }
}

这是我在 Stack Overflow 上的第一个问题,我是怎么做的?

最佳答案

如果我理解你的问题,那么你可以将负值作为第二个参数传递给 Calendar.add(int field, int value)喜欢

int amount = -10;
cal.add(Calendar.MILLISECOND, amount);

日历 cal 中减去 10 毫秒。

关于java - 如何使用日历减去不同的时间单位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27083821/

相关文章:

java - delphi加密转换Java代码

Java多线程纠错——线程安全单例

c++ - 如何从日期中减去时间

ios - 我如何在 ios 中获得 GMT 时间?

c# - 如何制作一个wpf倒数计时器?

javascript - PHP 计时器等待 30 秒然后运行命令

java - 仅测试 src 文件夹中的 Eclipse Java OpenCV unsatisfiedLinkError

java - org.springframework.web.servlet.PageNotFound noHandlerFound

php - 实际时间是 24 小时格式吗?

timer - systemd 计时器 AccuracySec 参数使滴答声滑动是否正确?