当前位置: 首页 > 知识库问答 >
问题:

在最大非零值处切断一个持续时间

方博学
2023-03-14

有没有方便的方法将持续时间d四舍五入到最重要的时间单位?

例如:

<代码>持续时间。分钟数(65)-

Duration.of分钟(1500)-


共有1个答案

钦德佑
2023-03-14

这里有一种方法:

// All of the ChronoUnit values that are convertible from TimeUnit values, because
// these are the only ones that can be used by Duration.of(amount, unit).
private static final ChronoUnit[] timeUnitValues =
        Arrays.stream(TimeUnit.values())
            .map(TimeUnit::toChronoUnit)
            .toArray(ChronoUnit[]::new);

public static Duration truncateToMajorUnit(Duration duration) {
    for (var unit : timeUnitValues) {
        if (duration.compareTo(Duration.of(1, unit)) > 0)
            duration = duration.truncatedTo(unit);
    }
    return duration;
}

public static void main(String[] args) {
    System.out.println(truncateToMajorUnit(Duration.ofMinutes(59)));   // 59m
    System.out.println(truncateToMajorUnit(Duration.ofMinutes(65)));   // 1h
    System.out.println(truncateToMajorUnit(Duration.ofMinutes(185)));  // 3h
    System.out.println(truncateToMajorUnit(Duration.ofMinutes(1500))); // 24h
    System.out.println(truncateToMajorUnit(Duration.ofMinutes(1800))); // still 24h
}
 类似资料:
  • 问题内容: 假设我们有一个1d的numpy数组,其中填充了一些值。假设其中一些是。 有什么方法可以利用数组的功能,用找到的最后一个非零值填充所有值? 例如: 一种方法是使用以下功能: 但是,这是使用原始的python循环,而不是利用and功能。 如果我们知道可能有相当数量的连续零,则可以使用基于的东西。问题在于连续零的数量可能很大… 有任何想法吗?还是我们应该直接去? 免责声明: 我会说很久以前,

  • 问题内容: 我想使用允许用户将持续时间值输入表单。有效值样本为: 但是,我在此方面取得的成功有限。有人可以建议如何实现吗?如果也可以使用a达到此结果,我也可以。 谢谢! 如果值钱,这是我目前的尝试: 这种排序有效,除了: 我无法获取h并m显示为纯文本(我尝试转义) * 小时数已达到最大值 问题答案: 代码:

  • 我就是这样做的https://tour.golang.org/moretypes/10我修改了代码,希望得到相同的结果。我没有。这是错误还是文档错误?美国之旅 nil片的长度和容量为0。 我的y变量的长度和容量为0。 这是我的输出。 我还以为会有第二个“零”~为什么我没拿到?

  • 假设我有一个如下形式的numpy数组: 我想找到第一个索引的索引(对于每一列),其中的值是非零的。 因此,在本例中,我希望返回以下内容: 我该怎么办?

  • 问题内容: 我一直在处理我公司的CI扩展问题,同时试图弄清楚在CI和多个分支机构中采用哪种方法。在stackoverflow,多个功能分支和持续集成上也存在类似的问题。我开始了新的话题,因为我想进行更多的讨论并提供有关问题的一些分析。 到目前为止,我发现我可以采用2种主要方法(或者可能采取其他一些方法?)。 每个分支有多套工作(在这里谈论詹金斯/哈德森) 编写工具来管理额外的工作 批量创建/修改/

  • 问题内容: 我有按日期索引的熊猫。有许多列,但仅在部分时间序列中填充了许多列。我想找到非值第一个和最后一个值的位置,以便提取日期并查看特定列的时间序列有多长时间。 有人能指出我正确的方向,如何去做这样的事情吗?提前致谢。 问题答案: @ behzad.nouri的解决方案完美工作,返回第一个和最后不使用Series.first_valid_index和Series.last_valid_index