当前位置: 首页 > 面试题库 >

将天数分为年,月,日,小时的不同部分。爪哇

茅曾琪
2023-03-14
问题内容

有没有一种方法可以将通过计算两个日期之间的差异计算出的天数划分为不同的部分,例如对于364天应该是:0年,11个月,30天,小时,分钟等。我认为使用逻辑运算符可能像%和/一样工作,但是由于不同的月份有不同的天数,并且有些年份是leap年,所以我不确定该怎么做。任何帮助将非常感激。我的代码:

import java.util.*;

public class CleanDate {

    public static void main(String[] args) {
        Calendar cDate = GregorianCalendar.getInstance();
        cDate.set(2011, 0, 31, 00, 00, 00);
        Date date1 = cDate.getTime();
        Date date2 = new Date();
        Calendar calendar1 = Calendar.getInstance();
        Calendar calendar2 = Calendar.getInstance();
        calendar1.setTime(date1);
        calendar2.setTime(date2);
        long milliseconds1 = calendar1.getTimeInMillis();
        long milliseconds2 = calendar2.getTimeInMillis();
        long diff = milliseconds2 - milliseconds1;
        long diffSeconds = diff / 1000;
        long diffMinutes = diff / (60 * 1000);
        long diffHours = diff / (60 * 60 * 1000);
        long diffDays = diff / (24 * 60 * 60 * 1000);
        System.out.println("Time in minutes: " + diffMinutes + " minutes.");
        System.out.println("Time in hours: " + diffHours + " hours.");
        System.out.println("Time in days: " + diffDays + " days.");
    }
}

问题答案:

您可以像这样有效地使用Joda Time: Interval允许获取两个日期之间的时间间隔。

DateTime end = new DateTime(2006, 1, 1, 0, 0, 0, 0);
Interval interval = new Interval(start, end);
Period period = interval.toPeriod();
System.out.println(period.getYears()+" years, "
period.getMonths()+" months, "+period.getWeeks()+" weeks, "+period.getDays()+", days");


 类似资料:
  • 我有大量的日期范围,如下所示,示例如下。我需要计算每个实际日历年有多少个月。因此,这将分解为: 合同:123 开始日期:2016年11月1日 结束日期:2018年6月1日 2016年11月1日 合同:456 开始日期:2017年5月31日 结束日期:2019年6月1日 2017年5月31日 有人知道解决这个问题的方法吗?每个合同都有一行,都在同一个表中,开始和结束日期列在同一行中。 我原本打算沿着

  • 我想用Python获取当前时间,并将它们分配到变量中,如年、月、日、小时、分钟。在Python 2.7中如何做到这一点?

  • 问题内容: 我有一个像这样的简单模型: 我想输出按月细分: 一个月内有多少笔交易() 合并值() 我不确定最好的攻击方法是什么。我已经看到了一些看上去很吓人的额外选择查询,但我的简单想法是告诉我,最好是迭代数字,从任意开始的年/月开始,一直计数到我达到当月,然后简单地抛出查询该月的过滤条件。更多数据库工作-减轻开发人员压力! 什么对你最有意义?有什么好方法可以拉回快速数据表吗?还是我的肮脏方法可能

  • 问题内容: 我想获得当前时间在Python,并将它们分配到变量喜欢,,,,。如何在Python 2.7中完成? 问题答案: 该模块是您的朋友: 您不需要单独的变量,返回对象上的属性就可以满足您的所有需求。

  • 当x超过3600秒时,有没有办法把x秒转换成y小时和z秒?类似地,当x超过60但小于3600秒时,使用Jodatime将其转换为“A分钟和b秒”?我明白我必须在PeriodFormatter中指定我需要什么,但我不想指定它--我想要一个基于秒值的格式化文本。 这类似于你在论坛上发帖,然后你的帖子最初会显示为“10秒前发布的”…一分钟后,你会看到“1分20秒前发布”,几周、几天、几年都是如此。

  • 这就是我所拥有的。