Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以HH:MM(非时间)的形式存储数值_Java_Variables_Date_Types - Fatal编程技术网

Java 以HH:MM(非时间)的形式存储数值

Java 以HH:MM(非时间)的形式存储数值,java,variables,date,types,Java,Variables,Date,Types,我需要弄清楚如何存储时间,如12:45、13:45等。。因此,格式为HH:MM java中不需要使用日期功能,这些功能不会用于对事件或任何类似事件计时,我所需要的只是执行类似于13:45-12:45的操作,并获得输出,在本例中是01:00我尝试使用双倍,然而遇到了类似于13.45+00.35=13.80的问题由于一小时只有60分钟,预期输出应为14.20 我也在尝试如何处理日期,但请记住,目前我不需要担心时区、日历日期等问题。。我需要弄清楚如何让数字表现得像小时和分钟 很抱歉,这让人困惑。请在几

我需要弄清楚如何存储时间,如
12:45、13:45
等。。因此,格式为
HH:MM

java中不需要使用日期功能,这些功能不会用于对事件或任何类似事件计时,我所需要的只是执行类似于
13:45-12:45
的操作,并获得输出,在本例中是
01:00
我尝试使用双倍,然而遇到了类似于
13.45+00.35=13.80的问题由于一小时只有60分钟,预期输出应为
14.20

我也在尝试如何处理日期,但请记住,目前我不需要担心时区、日历日期等问题。。我需要弄清楚如何让数字表现得像小时和分钟


很抱歉,这让人困惑。

请在几分钟内存储所有数字。使用单个整数,您可以通过整数数学来进行简单的时间操作。如果您不在乎今天是哪一天,请在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));
int-time=600;
//示例时间操作
时间=(5000+时间)%1440//日间不敏感
//如果怀疑时间将变为负值,请执行此检查。
如果(时间<0){
时间=1440+时间;
}
//显示时间
整小时=时间/60//整数除以60,得到时间分量中“完美60”的最大数目。
整数分钟=时间%60//整数模,获取自上次“完美60”以来的余数
System.out.println(String.format(“%02d:%02d”,小时,分钟));
请注意,大多数时间保持构造是如何简单地将时间/日期或其他内容存储为一个带有基本单位的单个数值的。例如:
System.currentTimeMillis()
,它以从历元开始的毫秒数返回时间


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

您应该创建一个对象。叫它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.


}

我在java中使用一种方法来处理日期和时间事务,我使用了一个框架,叫做,he is very good。只有你才可以下载。Jar,并查看如何使用més、年份和日期进行操作。使用这个框架vc可以通过编写更复杂的代码来避免很多麻烦。

好的,下面是我的评论:

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);
您不必使用日期部分来使用时间部分。

已经实现了您在类中查找的内容:


如果你想让数字表现得像时间一样,那么就这样对待它们。那么你就不必费心去包装60岁左右之类的东西了。@Jeroenvanevel这完全是我刚才写的,但是你更快了;-)@Jeroenvanevel你能详细谈谈你的评论吗?现在,即使我把12.30这样的双精度时间加上45分钟,那么00.45将得到12.75,这根本不是时间,我可能还不明白。@ilya:只需创建两个日期并使用这些对象(
日历
)。你不关心日期方面,只关心时间。“一小时只有60分钟”=你应该将数据计时为时间而不是十进制数字的原因。提供所需的基于时间的对象。matsev的正确答案。有了Period对象,您可以计算经过的时间。看见
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);