【问题标题】:How to represent any "duration" or "period" in Joda time?如何表示 Joda 时间中的任何“持续时间”或“周期”?
【发布时间】:2013-03-15 15:44:28
【问题描述】:

我想将 24 小时表示为“持续时间”。也就是说,它应该从 仅从 00:00:00 到 24:00:00。像今天凌晨 12 点到明天凌晨 12 点这样的事情是不行的。这也是 24 小时,但这不是我想要的。此外,此“持续时间”不应附加日期或日期的概念。

如何使用 Joda Time 执行此操作?

编辑 -

用例 - ' 我想创建一个调度程序。 24 小时“周期”被分成任意大小的片段,例如 20 分钟、30 分钟或 1 小时。我只想用 Joda 创建一个 24 小时的“时间段”和那个时间段的切片”。我知道 joda 不能做任何调度。

例如。

1 小时切片 -

00:00:00 - 01:00:00
01:00:00 - 02:00:00
all the way up to -
23:00:00 - 24:00:00

时间表 -

00:00:00 - 07:00:00 - sleep
07:00:00 - 08:00:00 - get ready for work
08:00:00 - 09:00:00 - drive to work
09:00:00 - 17:00:00 - work
etc...

这是工作日的时间表。周末是为了放松。 :)

【问题讨论】:

  • 完全不清楚您要达到的目标。您可以轻松地创建一个 24 小时的Duration,但这不一定与“从午夜到午夜的时间长度”相同。获得此值后,您希望如何使用
  • @JonSkeet - 抱歉。我在问题中添加了详细信息。如果没问题,请给我投票。
  • 目前还不清楚您期望哪些操作对此类对象有效。我强烈怀疑 Joda Time 没有提供任何可以为您完成所有工作的东西 - 您需要创建自己的类型,但这很容易。
  • @JonSkeet - 我只想使用 Joda 来创建一个 24 小时的“时间段”和那个时间段的片段“。我不希望 joda 为我做任何安排,因为我知道 joda无法进行任何调度。

标签: java jodatime


【解决方案1】:

有这个诱人的Period class...只是不要在上面设置日期字段,只有时间字段。

或者有LocalTime,代表一天中的某个时间。


根据您的编辑,这听起来像是 LocalTime 加上一个数字的组合,该数字表示插槽的长度(以分钟或任何对您有意义的单位)。因此,您可能有一个 ScheduleEntry 类,其中有一个 LocalTime 成员表示计划条目何时开始,而 int 则表示它持续多长时间。

【讨论】:

  • T.J crowder - 谢谢。我在我的问题中添加了更多信息。这会改变你的答案吗?
  • 我怀疑LocalTime 将成为解决方案的一部分,是的。
  • @T.J.Crowder - 我不明白你说了什么。请再告诉我一点。我的主要目标是能够从一天 24 小时中创建时间片。之后任务分配和日程安排就变得容易了。
  • @JediKnight:你不明白什么?创建一个有成员的类?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-31
  • 1970-01-01
  • 1970-01-01
  • 2021-07-23
  • 2020-05-07
  • 2012-04-24
  • 1970-01-01
相关资源
最近更新 更多