java - 将 Joda 时间段划分为所需大小的间隔?

标签 java jodatime

我有一个时间“周期”(P),由开始时间 (S) 和结束时间 (E) 表示。 我想把 P 分成 C 个大小为 D 的 block 。也就是说,

P = C * D + R,其中 R 是剩余时间或剩余时间。

例如。

S = NOW, E = 10 sec after NOW, D = 3 sec.
Therefore, P = 10 sec, C = 3, R = 1 sec. 

我想存储和显示所有 block C 及其开始时间、结束时间和大小。 最后,我想存储和显示余数。我如何使用 Joda Time 执行此操作?

API 是否提供简单的方法和类来执行此操作,否则我将不得不想出办法?

这个问题是我发布的另一个问题的一小部分 here

最佳答案

我不确定这段代码是否是您正在寻找的代码,但它可能会让您走上正轨。

我假设您有两个 DateTimes 来表示开始日期和结束日期,因为 Joda-Time Period 表示 1 个月或 2 周之类的时间段。它没有特定的开始或结束,例如表示两个瞬间之间的时间片的间隔。

import java.util.*;
import org.joda.time.*;

class Test {
    public static void main(String... args) {
        DateTime now = new DateTime();
        List<Interval> list = splitDuration(now, now.plusSeconds(10), 3, 3 * 1000);

        for(Interval i : list) {
            System.out.println(i.getStart() + " - " +
                               i.getEnd() + " - " +
                               i.toDurationMillis());
        }
    }

    static List<Interval> splitDuration(DateTime start, DateTime end, long chunkAmount, long chunkSize) {
        long millis = start.getMillis();
        List<Interval> list = new ArrayList<Interval>();

        for(int i = 0; i < chunkAmount; ++i) {
            list.add(new Interval(millis, millis += chunkSize));
        }

        list.add(new Interval(millis, end.getMillis()));
        return list;
    }
}

我的输出:

2013-03-12T12:29:01.781+01:00 - 2013-03-12T12:29:04.781+01:00 - 3000
2013-03-12T12:29:04.781+01:00 - 2013-03-12T12:29:07.781+01:00 - 3000
2013-03-12T12:29:07.781+01:00 - 2013-03-12T12:29:10.781+01:00 - 3000
2013-03-12T12:29:10.781+01:00 - 2013-03-12T12:29:11.781+01:00 - 1000

关于java - 将 Joda 时间段划分为所需大小的间隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15358409/

相关文章:

android - 单元测试和 joda-time-android

java - Wildfly 热部署静态内容(Javascripts、HTML、CSS)而无需在 Spring STS 中重新启动服务器

java - java读取txt文件中的分数

java - http获取android异步任务

java - 如何使用 Kryo 序列化 Joda-Time 的 LocalDate

java - 在数据库中插入/选择 joda-time 日期类型

java - Android项目使用httpclient --> http.client (apache), post/get方法

java - 将字符串解析为 JSON 对象

Java JodaTime 期间格式化

hibernate - jodatime 与 hibernate 5 的兼容性问题