zoukankan      html  css  js  c++  java
  • 怎样推断两个日期在一周内

    怎样推断两个日期在一周内。首先,须要搞清楚一周内究竟是什么含义。国内一般是以周一作为每周的第一天,而西方普遍以周日作为每周的第一天。

    下面,我们以西方的标准来处理这个问题。


    常见的日期结构:

    struct DateTime
    {
    int year;
    int month;
    int day;
    int weekday;  //days since Sunday - [0, 6]
    int hour;
    int minute;
    int second;
    };
    上述结构中与周相关的參数仅仅有weekday,应该设法利用该參数:

    bool IsBetweenOneWeek(DateTime dt1, DateTime dt2)
    {
        int diff, weekDay;
        DateTime LaterDt;
        if (dt.day < dt2.day)  // diff为较早日期减去较晚日期的差值
        {
            diff = dt1.day - dt2.day;
        }
        else
        {
            diff = dt2.day - dt1.day;
        }
        if (abs(diff) > 6)      // 相差天数大于6天。必定不在一周内
        {
            return false;
        }
    
        LaterDt = dt1.day > dt2.day ? dt1 : dt2;  // 取得较晚的日期
        weekDay = LaterDt.weekday;
        if (((diff + weekDay) < 0) || ((diff + weekDay) > 6))
        {
            return false;
        }
        return true;
    }


    该方法的核心在于。计算两个日期的差值与较晚日期的weekDay(周中天数)之和是否小于6,即diff + weekDay。

  • 相关阅读:
    2019.10.07题解
    2019.10.06题解
    2019.10.05'题解
    2019.10.05题解
    java邮件发送
    注释类型 XmlType
    Spring 注解
    @SuppressWarnings(unchecked)作用解释
    vm文件
    Apache Shiro 使用手册(一)Shiro架构介绍
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/6745014.html
Copyright © 2011-2022 走看看