精华内容
下载资源
问答
  • 不废话上代码 start_at = '2021-07-01 06:08:40' d1 = parse(start_at) end_at = '2021-08-05 06:08:43'...还有一个就是列举出两个日期之间的每一天开始和结束,效果如下图: 在某些查询的时候可能需要用到,一并做下

    不废话上代码

    from datetime import datetime
    from dateutil.parser import parse
    
    start_at = '2021-07-01 06:08:40'
    d1 = parse(start_at)
    
    end_at = '2021-08-05 06:08:43'
    d2 = parse(end_at)
    if (d2-d1).days > 30:
        raise Exception('do not exceed 30 days')
    print((d2-d1).days)
    

    还有一个就是列举出两个日期之间的每一天开始和结束,效果如下图:
    在这里插入图片描述
    在某些查询的时候可能需要用到,一并做下记录。

    import datetime
    
    # params
    start_at = '2021-07-01'
    end_at = '2021-07-07'
    step = 1
    
    # programs
    resp_list = []
    start_array = start_at.split('-')
    end_array = end_at.split('-')
    start_day = datetime.datetime(
        int(start_array[0]), int(start_array[1]), int(start_array[2]))   # 第一个日期
    end_day = datetime.datetime(
        int(end_array[0]), int(end_array[1]), int(end_array[2]))   # 第二个日期
    interval = (end_day - start_day).days + 2    # 两日期差距
    day_str = start_at + ' 00:00:00'
    for i in range(1, interval, step):
        start_day = datetime.datetime.strptime(day_str, '%Y-%m-%d %H:%M:%S')
        start_at = start_day + datetime.timedelta(days=i-1)
        end_at = start_at + datetime.timedelta(days=1)
    
    展开全文
  • Java计算两个时间的天数差与月数差 LocalDateTime,如何计算日期差的天数/*** 计算两个时间点的天数差* @param dt1 第一个时间点* @param dt2 第二个时间点* @return int,即要计算的天数差*/public static int ...

    Java计算两个时间的天数差与月数差 LocalDateTime,如何计算日期差的天数

    /**

    * 计算两个时间点的天数差

    * @param dt1 第一个时间点

    * @param dt2 第二个时间点

    * @return int,即要计算的天数差

    */

    public static int dateDiff(LocalDateTime dt1,LocalDateTime dt2){

    //获取第一个时间点的时间戳对应的秒数

    long t1 = dt1.toEpochSecond(ZoneOffset.ofHours(0));

    //获取第一个时间点在是1970年1月1日后的第几天

    long day1 = t1 /(60*60*24);

    //获取第二个时间点的时间戳对应的秒数

    long t2 = dt2.toEpochSecond(ZoneOffset.ofHours(0));

    //获取第二个时间点在是1970年1月1日后的第几天

    long day2 = t2/(60*60*24);

    //返回两个时间点的天数差

    return (int)(day2 - day1);

    }

    @Test

    public void testDay(){

    LocalDateTime of1 = LocalDateTime.of(2018, 9, 25, 1, 1);//2018-9-25 01:01

    LocalDateTime of2 = LocalDateTime.of(2019, 9, 25, 23, 16); //2019-9-25 23:16

    System.out.println(dateDiff(of1,of2));//365

    }

    /**

    * 获取两个时间点的月份差

    * @param dt1 第一个时间点

    * @param dt2 第二个时间点

    * @return int,即需求的月数差

    */

    public static int monthDiff(LocalDateTime dt1,LocalDateTime dt2){

    //获取第一个时间点的月份

    int month1 = dt1.getMonthValue();

    //获取第一个时间点的年份

    int year1 = dt1.getYear();

    //获取第一个时间点的月份

    int month2 = dt2.getMonthValue();

    //获取第一个时间点的年份

    int year2 = dt2.getYear();

    //返回两个时间点的月数差

    return (year2 - year1) *12 + (month2 - month1);

    }

    @Test

    public void testMonth(){

    LocalDateTime of1 = LocalDateTime.of(2018, 9, 25, 1, 1);//2018-9-25 01:01

    LocalDateTime of2 = LocalDateTime.of(2019, 9, 25, 23, 16); //2019-9-25 23:16

    System.out.println(monthDiff(of1,of2));//12

    }

    相关文章暂无相关文章

    展开全文
  • 展开全部在Java开发物流e68a84e8a2ad62616964757a686964616f31333337616538或是其他功能的时候会用到两个日期相差多天的数据,所以整理了一下备用。调用方式:代码如下 复制代码long date1 = getDateTime("20121201...

    展开全部

    在Java开发物流e68a84e8a2ad62616964757a686964616f31333337616538或是其他功能的时候会用到两个日期相差多天的数据,所以整理了一下备用。

    调用方式:

    代码如下 复制代码

    long date1 = getDateTime("20121201");//可改成自己的日期类型,但以“20121212”这种格式

    long date2 = getDateTime("20121212");

    int day = dateInterval(date1, date2);

    System.out.println(day);

    具体实现方法调用:

    代码如下 复制代码

    /**

    * 计算出两个日期之间相差的天数

    * 建议date1 大于 date2 这样计算的值为正数

    * @param date1 日期1

    * @param date2 日期2

    * @return date1 - date2

    */

    public static int dateInterval(long date1, long date2) {

    if(date2 > date1){

    date2 = date2 + date1;

    date1 = date2 - date1;

    date2 = date2 - date1;

    }

    // Canlendar 该类是一个抽象类

    // 提供了丰富的日历字段

    // 本程序中使用到了

    // Calendar.YEAR 日期中的年份

    // Calendar.DAY_OF_YEAR 当前年中的天数

    // getActualMaximum(Calendar.DAY_OF_YEAR) 返回今年是 365 天还是366天

    Calendar calendar1 = Calendar.getInstance(); // 获得一个日历

    calendar1.setTimeInMillis(date1); // 用给定的 long 值设置此 Calendar 的当前时间值。

    Calendar calendar2 = Calendar.getInstance();

    calendar2.setTimeInMillis(date2);

    // 先判断是否同年

    int y1 = calendar1.get(Calendar.YEAR);

    int y2 = calendar2.get(Calendar.YEAR);

    int d1 = calendar1.get(Calendar.DAY_OF_YEAR);

    int d2 = calendar2.get(Calendar.DAY_OF_YEAR);

    int maxDays = 0;

    int day = 0;

    if(y1 - y2 > 0){

    day = numerical(maxDays, d1, d2, y1, y2, calendar2);

    }else{

    day = d1 - d2;

    }

    return day;

    }

    /**

    * 日期间隔计算

    * 计算公式(示例):

    * 20121201- 20121212

    * 取出20121201这一年过了多少天 d1 = 天数 取出20121212这一年过了多少天 d2 = 天数

    * 如果2012年这一年有366天就要让间隔的天数+1,因为2月份有29日。

    * @param maxDays 用于记录一年中有365天还是366天

    * @param d1 表示在这年中过了多少天

    * @param d2 表示在这年中过了多少天

    * @param y1 当前为2012年

    * @param y2 当前为2012年

    * @param calendar 根据日历对象来获取一年中有多少天

    * @return 计算后日期间隔的天数

    */

    public static int numerical(int maxDays, int d1, int d2, int y1, int y2, Calendar calendar){

    int day = d1 - d2;

    int betweenYears = y1 - y2;

    List d366 = new ArrayList();

    if(calendar.getActualMaximum(Calendar.DAY_OF_YEAR) == 366){

    System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_YEAR));

    day += 1;

    }

    for (int i = 0; i < betweenYears; i++) {

    // 当年 + 1 设置下一年中有多少天

    calendar.set(Calendar.YEAR, (calendar.get(Calendar.YEAR)) + 1);

    maxDays = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);

    // 第一个 366 天不用 + 1 将所有366记录,先不进行加入然后再少加一个

    if(maxDays != 366){

    day += maxDays;

    }else{

    d366.add(maxDays);

    }

    // 如果最后一个 maxDays 等于366 day - 1

    if(i == betweenYears-1 && betweenYears > 1 && maxDays == 366){

    day -= 1;

    }

    }

    for(int i = 0; i < d366.size(); i++){

    // 一个或一个以上的366天

    if(d366.size() >= 1){

    day += d366.get(i);

    }

    }

    return day;

    }

    /**

    * 将日期字符串装换成日期

    * @param strDate 日期支持年月日 示例:yyyyMMdd

    * @return 1970年1月1日器日期的毫秒数

    */

    public static long getDateTime(String strDate) {

    return getDateByFormat(strDate, "yyyyMMdd").getTime();

    }

    /**

    * @param strDate 日期字符串

    * @param format 日期格式

    * @return Date

    */

    public static Date getDateByFormat(String strDate, String format) {

    SimpleDateFormat sdf = new SimpleDateFormat(format);

    try{

    return (sdf.parse(strDate));

    }catch (Exception e){

    return null;

    }

    }

    例2

    代码如下 复制代码

    import java.text.ParseException;

    import java.text.SimpleDateFormat;

    import java.util.Calendar;

    import java.util.Date;

    public class test16 {

    /**

    * @param args

    * @throws ParseException

    */

    public static void main(String[] args) throws ParseException {

    // TODO Auto-generated method stub

    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    Date d1=sdf.parse("2012-09-08 10:10:10");

    Date d2=sdf.parse("2012-09-15 00:00:00");

    System.out.println(daysBetween(d1,d2));

    System.out.println(daysBetween("2012-09-08 10:10:10","2012-09-15 00:00:00"));

    }

    /**

    * 计算两个日期之间相差的天数

    * @param smdate 较小的时间

    * @param bdate 较大的时间

    * @return 相差天数

    * @throws ParseException

    */

    public static int daysBetween(Date smdate,Date bdate) throws ParseException

    {

    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

    smdate=sdf.parse(sdf.format(smdate));

    bdate=sdf.parse(sdf.format(bdate));

    Calendar cal = Calendar.getInstance();

    cal.setTime(smdate);

    long time1 = cal.getTimeInMillis();

    cal.setTime(bdate);

    long time2 = cal.getTimeInMillis();

    long between_days=(time2-time1)/(1000*3600*24);

    return Integer.parseInt(String.valueOf(between_days));

    }

    /**

    *字符串的日期格式的计算

    */

    public static int daysBetween(String smdate,String bdate) throws ParseException{

    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

    Calendar cal = Calendar.getInstance();

    cal.setTime(sdf.parse(smdate));

    long time1 = cal.getTimeInMillis();

    cal.setTime(sdf.parse(bdate));

    long time2 = cal.getTimeInMillis();

    long between_days=(time2-time1)/(1000*3600*24);

    return Integer.parseInt(String.valueOf(between_days));

    }

    }

    例3

    代码如下 复制代码

    //取得剩余天数

    SimpleDateFormat df=new SimpleDateFormat("yyyymmdd");

    Date d0=new java.util.Date();

    Date d1=df.parse(end_date);

    long time0=d0.getTime();

    long time1=d1.getTime();

    System.out.println((time1-time0)/(1000*60*60*24));

    这样算两个时间相差的天数比较好

    代码如下 复制代码

    /**

    * 计算两个日期之间相差的天数

    *

    * @param date1

    * @param date2

    * @return

    */

    public static int diffdates(Date date1, Date date2) {

    int result = 0;

    ElapsedTime et = new ElapsedTime();

    GregorianCalendar gc1 = new GregorianCalendar();

    GregorianCalendar gc2 = new GregorianCalendar();

    gc1.setTime(date1);

    gc2.setTime(date2);

    result = et.getDays(gc1, gc2);

    return result;

    }

    然后ElapseTime中的方法是:

    代码如下 复制代码

    public int getDays(GregorianCalendar g1, GregorianCalendar g2) {

    int elapsed = 0;

    GregorianCalendar gc1, gc2;

    if (g2.after(g1)) {

    gc2 = (GregorianCalendar) g2.clone();

    gc1 = (GregorianCalendar) g1.clone();

    } else {

    gc2 = (GregorianCalendar) g1.clone();

    gc1 = (GregorianCalendar) g2.clone();

    }

    gc1.clear(Calendar.MILLISECOND);

    gc1.clear(Calendar.SECOND);

    gc1.clear(Calendar.MINUTE);

    gc1.clear(Calendar.HOUR_OF_DAY);

    gc2.clear(Calendar.MILLISECOND);

    gc2.clear(Calendar.SECOND);

    gc2.clear(Calendar.MINUTE);

    gc2.clear(Calendar.HOUR_OF_DAY);

    while (gc1.before(gc2)) {

    gc1.add(Calendar.DATE, 1);

    elapsed++;

    }

    return elapsed;

    }

    其实使用joda最简单

    代码如下 复制代码

    public boolean isRentalOverdue(DateTime datetimeRented) {

    Period rentalPeriod = Period.days(2);

    return datetimeRented.plus(rentalPeriod).isBeforeNow()

    }

    2Q==

    已赞过

    已踩过<

    你对这个回答的评价是?

    评论

    收起

    展开全文
  • excel表格怎么计算两个日期之间的天数?以计算距国庆日期为例:见图一1、在F5单元格输入公式:E5-D52、在F5单元格单击右键,在菜单中选择:设置单元格格式...这时会跳出单元格设置对话框见图二在对话框中选择:数值...

    excel表格怎么计算两个日期之间的天数?

    usjtva1bopi.jpg

    以计算距国庆日期为例:

    见图一

    1、在F5单元格输入公式:E5-D5

    2、在F5单元格单击右键,在菜单中选择:设置单元格格式...

    这时会跳出单元格设置对话框

    见图二

    在对话框中选择:数值

    小数位设为:0

    确定返回

    分享

    本回答由电脑网络分类达人 郭强认证

    其他类似问题

    2007-04-14用Excel怎样算两个日期间的天数?51

    2012-07-26EXCEL中计算2个日期之间的天数的函数18

    2012-12-10用EXCEL怎么计算2个日期之间的天数15

    2008-03-14在EXCEL中怎么算两个日期相差的天数呢?19

    2014-11-18在EXCEL表格中计算两个日期之间的天数1

    更多关于excel怎么计算两个日期之间天数和时间计算的问题>>

    为您推荐:

    举报| 2011-03-28 17:19

    #2016年高质量新标准全面升级!#

    提问者采纳

    可以使用隐藏函数DATEDIF(日期1,日期2,"D");

    下面是详细说明:

    1、简要说明: 返回两个日期之间的年\月\日间隔数

    2、基本语法: =DATEDIF(开始日期,结束日期,单位代码)

    3、实例1:

    题目: 计算出生日期为1973-4-1人的年龄

    公式: =DATEDIF("1973-4-1",TODAY(),"Y")

    结果: 33

    简要说明 当单位代码为"Y"时,计算结果是两个日期间隔的年数.

    4、实例2:

    题目: 计算日期为1973-4-1和当前日期的间隔月份数.

    公式: =DATEDIF("1973-4-1",TODAY(),"M")

    结果: 403

    简要说明 当单位代码为"M"时,计算结果是两个日期间隔的月份数.

    5、实例3:

    题目: 计算日期为1973-4-1和当前日期的间隔天数.

    公式: =DATEDIF("1973-4-1",TODAY(),"D")

    结果: 12273

    简要说明 当单位代码为"D"时,计算结果是两个日期间隔的天数.

    5、实例4:

    题目: 计算日期为1973-4-1和当前日期的不计年数的间隔天数.

    公式: =DATEDIF("1973-4-1",TODAY(),"YD")

    结果: 220

    简要说明 当单位代码为"YD"时,计算结果是两个日期间隔的天数.忽略年数差

    5、实例5:

    题目: 计算日期为1973-4-1和当前日期的不计月份和年份的间隔天数.

    公式: =DATEDIF("1973-4-1",TODAY(),"MD")

    结果: 6

    简要说明 当单位代码为"MD"时,计算结果是两个日期间隔的天数.忽略年数和月份之差

    5、实例6:

    题目: 计算日期为1973-4-1和当前日期的不计年份的间隔月份数.

    公式: =DATEDIF("1973-4-1",TODAY(),"YM")

    结果: 7

    简要说明 当单位代码为"YM"时,计算结果是两个日期间隔的月份数.不计相差年数

    oracle中计算两个日期之间的天数

    szcgvulmv4m.jpg

    你先看看你那两个字段是date型还是varchar型

    date型的话

    select discharge_date_time-admission_date_time from transfer

    字符型的话

    select to_date(discharge_date_time,'yyyy-mm-dd')-to_date(admission_date_time,'yyyy-mm-dd') from transfer

    前一个存在的情况是,如果你日期中包含时分秒,结果可能是小数

    后一个的情况是,主要看你字符存储的格式

    如果是2013-08-01就用上边的,要是20130801,那么yyyy-mm-dd就得改成yyyymmdd,如果带时间的话那就另说吧

    excel计算两个日期之间相差月份及天数

    arjzls3ubco.jpg

    C1输入公式=DATEDIF(A2,B2,"y")

    D1=DATEDIF(A2,B2,"ym")

    E1=DATEDIF(A2,B2,"md")

    excel表格中如何计算两个日期之间的天数?

    l0fcf2hz0xw.jpg

    以计算距国庆日期为例:

    见图一

    1、在F5单元格输入公式:E5-D5

    2、在F5单元格单击右键,在菜单中选择:设置单元格格式...

    这时会跳出单元格设置对话框

    见图二

    在对话框中选择:数值

    小数位设为:0

    确定返回

    展开全文
  • public static int getDaysBetween (String beginDate, String endDate) throws ParseException { ...//得到当年的实际天数 d1.add(Calendar.YEAR, 1); } while (d1.get(Calendar.YEAR) != y2); } return days; }
  • javascript如何计算两个日期之间的天数差?下面本篇文章就来给大家介绍一下使用javascript计算两个日期之间的天数差,希望对大家有所帮助。在javascript中计算两个日期之间的天数差,需要使用date对象进行计算。为此...
  • JS计算两个日期之间的天数_www.jquerycn.cnfunction btnCount_Click(){s1 = "2006-12-18"s2 = "2007-1-5"alert("第一个日期;"+s1+"/n第二个日期:"+s2+"/n相差"+DateDiff(s1,s2)+"天")}//计算天数差的函数,通用...
  • 计算两个日期的相差天数 结果 计算两个日期相差时分秒 结果
  • n : '0' + n }, 获取两个日期相差天数 getTime () { if (this.form.beginTime && this.form.endTime) { var beginTime = this.formatTime(this.form.beginTime, 1); var endTime = this.formatTime(this.form....
  • 计算两个年月日之间的天数,思路是分别算出日期的总天数然后相减。要考虑闰年的情况,判断闰年的口诀:4年一闰,100年不闰,400年再闰。((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)网上找了一...
  • java根据开始时间和结束时间,计算中间天数,并打印import java.text.SimpleDateFormat;import java.util.Date;public class Calcdate {static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")...
  • 用Java计算两个日期之间的天数

    千次阅读 2021-02-12 14:18:33
    用Java计算两个日期之间的天数我想要一个Java程序来计算两个日期之间的天数。键入第一个日期(德语符号;带空格:“dd mm yyyy”)键入第二次约会。程序应该计算这两个日期之间的天数。我如何包括闰年和夏季?我的代码...
  • * 获取两个日期相差的天数 * * @param startDateStr * @param endDateStr */ public static int getDayBetweenTwoDate(String startDateStr, String endDateStr) { SimpleDateFormat simpleDateFormat = new ...
  • mysql计算两个日期之间的天数

    千次阅读 2021-01-18 18:49:09
    计算两日期时间之间相差的...函数 TimeStampDiff() 是MySQL本身提供的可以计算两个时间间隔的函数,语法为:TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)返回日期日期时间表达式datetime_expr1 和dateti...
  • 需求:求现在与指定日期之间相隔天数首先创建一包含时间字段的表格T如下:mysql> select * from T;+-------------+| search_time |+-------------+| 2019-8-10 || 2018-8-10 || 2019-9-10 |+-------------+3 ...
  • 计算两个日期相差天数 计算两个日期相差天数 /** * 计算两个日期相差天数 * * @param zqz * @param dqrq * @return * @throws ParseException */ public static int daysBetween(String zqz, String dqrq) throws ...
  • php计算两个日期之间的天数2017-12-21 14:29我有两个日期:开始日期: 2007-03-24结束日期: 2009-06-26现在我需要找到这两者之间的区别在以下形式:2年,3个月,2天要如何才能在PHP中做到这一点?我们可以使用...
  • 不管情况如何,只需要将两个日期在当年过完的天数进行做后取绝对值即可取到两个日期的相差天数 2.两个日期不在同一年 当日期一的年份大于日期二的年份时,先将两个日期的年月日进行互换再进行计算,反之则直接...
  • 电脑现已成为我们工作、生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到如何计算两个日期相隔的天数(用java实现)的问题,如果我们遇到了如何计算两个日期相隔的天数(用java实现)的情况,该怎么处理怎么...
  • 定义脚本 vim calculateDate.sh如下: #!/bin/sh startDate="20210801" endDate="20210826" echo "起始日期:$startDate" echo "结束日期:$endDate" ...#两个日期秒数 diff=`expr $endDateTime - $startDate
  • /*php计算任意两个日期之间的天数基本思想,算术减法:cur_date 2009 04 11last_date - 2008 12 20---------------------date_dist 0000 03 21间隔大约3个月21天---116天*/// create functionfunction date_distance...
  • java计算两个日期之间的天数

    千次阅读 2021-01-12 01:09:28
    展开全部在Java开发物流或是其他功能的时候会用到两个日期相差多天的数据,62616964757a686964616fe78988e69d8331333337616538所以整理了一下备用。调用方式:代码如下 复制代码long date1 = getDateTime("20121201...
  • 这是本人第一次写博客,主要计算两个日期之间相差的天数import java.text.ParseException;import java.util.Date;import org.apache.commons.lang3.time.DateUtils;public class Demo {public static void main...
  • 我想要一个Java程序来计算两个日期之间的天数。键入第一个日期(德语表示法;带空格:“ dd mm yyyy”)输入第二个日期。该程序应计算两个日期之间的天数。如何包含include年和夏季?我的代码:import java.util....
  • Hive求两个日期相差天数向上取整

    千次阅读 2021-01-25 11:59:57
    Hive求两个日期相差天数向上取整 最好的方法是利用时间戳相减,除以 86400 得到天数, 然后再round保留小数位,或者直接用ceil取整数。 在Hive中,ceil不支持选择保留位数,因此,如果不确定后面会取小数天还是取...
  • Java 计算两个日期相差的天数

    千次阅读 2021-02-12 11:10:19
    } /** * 计算两个日期之间相差的天数 * @param smdate 较小的时间 * @param bdate 较大的时间 * @return 相差天数 * @throws ParseException */ public static int daysBetween(Date smdate,Date bdate) throws ...
  • import java.util.*;public class Test {public static void main(String args[]) {Calendar calendar = Calendar.getInstance();calendar.setTime(new Date());calendar.set(1991, 7, 7);long time_1 = calendar.ge...
  • 两个Date类型字段:START_DATE,END_DATE,计算两个日期的时间(分别以天,小时,分钟,秒,毫秒):天: ROUND(TO_NUMBER(END_DATE - START_DATE))小时: ROUND(TO_NUMBER(END_DATE - START_DATE) * 24)分钟: RO...
  • 直接上传代码:import java.util.Calendar;import java.text.SimpleDateFormat;import java.text.ParseException;public class CalendarDemo {public static void main(String[] args) throws ParseException {...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 49,926
精华内容 19,970
关键字:

计算两个日期的天数差