是否有一种使用 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/