1

您好我正在尝试创建一个教师实用程序来移植到 android 操作系统。但是我遇到了一些麻烦。我想创建一个名为 Period 的类。此类将包含该时期的开始和结束时间。IE。第一阶段从 7:45 开始,到 8:45 结束。我也想有一个时间剩余的方法。例如,现在是 8 点 10 分,还剩 35 分钟。我能够从 System.currentTimeMillis() 获取当前时间。但是,我在尝试找出存储期间开始和结束时间的最佳方法时遇到了麻烦。我查看了 Java 中的 Calendar 类,似乎时间总是与日期和时间相关联。这似乎对我的申请没有帮助,因为该期间的结束时间发生在多天,而不仅仅是在一个特定日期。任何帮助理解这将是一个很大的帮助。谢谢大家

4

5 回答 5

1

如果您的目标是能够将时段的开始和结束时间与当前时间进行比较,那么您需要一种方法来计算今天的时段边界的日期和时间。

因此,获取今天的 Calendar 实例,将其时间设置为 7:45,并将日历的时间与当前时间进行比较(当然,上限相同)。

为了表示每个界限,您可以简单地使用一个 int 表示小时,使用第二个 int 表示分钟。

于 2013-02-04T14:24:26.050 回答
0

查看JodaTime库。DateTime 对象有你想要的。

于 2013-02-04T14:23:47.910 回答
0

看看JodaTime

具体来说,期间:http: //joda-time.sourceforge.net/key_period.html

于 2013-02-04T14:24:08.050 回答
0

Calendar 是 Date 类的包装之王,它具有大部分已弃用的功能。我听说 JodoTime API 非常适合比较两个时间戳(http://joda-time.sourceforge.net/)。

存储时段的开始和结束时间的一种方法是实例化日期的 ArrayList,以便您可以将任何给定时间与课程时段进行比较。

于 2013-02-04T14:25:30.740 回答
0

据我所知,您应该将时间存储为从上个午夜开始的秒数(可选毫秒)。因此,您的第一个周期 7.45 开始于 45*60(45 分钟 * 60 秒每分钟)+ 7*60*60(7 小时乘以分钟乘以秒!)= 2 700 + 25 200 = 27 900

对您的结束日期进行相同的计算,只要它们在同一天开始和结束,您就可以轻松减去差异,从而得到两者之间的间隔。如果它们不是发生在同一日期,那么 Java 的时间和日期类既优秀又是必须的。这些类本质上使用相同的算法,但不计算从“最后一个午夜”开始的秒数,而是从 UNIX 纪元时间(1970 年 1 月 1 日)开始计算毫秒数。

于 2013-02-04T14:29:17.033 回答