1

我需要弄清楚如何存储时间之类12:45, 13:45的......所以在Java中使用日期功能不是必需的格式HH:MM ,这些不会用于为事件或任何事情计时,我需要它们的只是执行类似操作13:45 - 12:45并获取输出,在这种情况下,01:00我尝试使用双打来执行此操作,但是遇到了类似问题,13.45 + 00.35 = 13.80;因为一小时内只有 60 分钟,预期输出应该是14.20

我也在试图弄清楚如何使用日期来做到这一点,但请记住,目前我不需要关心时区、日历日期等事情。我需要弄清楚如何让数字表现得像小时和分钟。

对不起,如果这令人困惑。

4

5 回答 5

1

Joda-Time已经实现了您在LocalTime类中寻找的内容:

LocalTime start = LocalTime.parse("12:45");
LocalTime end = LocalTime.parse("13:45");
Period period = new Period(start, end);

LocalTime start = new LocalTime(13, 45);
LocalTime later = start.plusMinutes(35);
于 2013-11-02T14:16:55.653 回答
1

您应该创建一个对象。叫它HHMM。它看起来像这样

public class HHMM {

  private int HH;
  private int MM;

  public HHMM(HH, MM) {

    this.HH = HH
    this.MM = MM

  }

  public toStr() {
    return HH + ":" + MM
  }

  public minus(HHMM hhmm){
    //write code here that subtracts the passed HHMM from this HHMM
  }

  //make a plus method too, and any other methods, etc.


}
于 2013-11-02T13:57:29.273 回答
1

好吧,这是我写的评论:

Calendar end = new GregorianCalendar(2013, 05, 05, 12, 40, 0);
Calendar start = new GregorianCalendar(2013, 05, 05, 12, 15, 0);

Calendar diff = end - start;
int minutes = diff.get(Calendar.Minutes);
int seconds = diff.get(Calendar.Seconds);

您不必使用日期部分来使用时间部分。

于 2013-11-02T14:05:27.037 回答
0

然后在几分钟内存储所有数字。使用单个整数,您可以通过整数数学来进行简单的时间操作。如果您不关心今天是哪一天,则将您的所有操作修改为 1440 (60*24):

例子:

int time = 600;

//Example time operation
time = (5000 + time) % 1440; //Day-insensitve

//Perform this check if you suspect time will become negative.
if(time < 0){
    time = 1440 + time;
}

//Display time
int hours = time / 60; //Integer division of 60, get the maximum number of "perfect 60s" in your time component.
int minutes = time % 60; //Integer mod, get the remainder since the last "perfect 60"

System.out.println(String.format("%02d:%02d", hours, minutes));

请注意,大多数计时结构如何简单地将时间/日期或其他任何内容存储为具有基本单位的单个数值。举个例子:System.currentTimeMillis()它以自纪元以​​来的毫秒数返回时间。

如果您只需要像时间这样的简单操作操作,您只需了解如何将单个值解析为所需的组件(例如秒、分钟、小时)。对该数值的运算与传统数学相同。

于 2013-11-02T13:52:03.500 回答
0

我用来在 java 中处理日期和时间的一种方法,我使用了一个名为Joda-Time的框架,他非常好。只有你刚刚下载的。罐子,并着眼于如何使用 mes、years 和 days 进行操作。使用这个框架 vc 通过编写更复杂的代码可以省去很多麻烦。

于 2013-11-02T14:00:13.600 回答