• C#根据日期判断是否本周,根据日期,获得星期几


    /// 判断选择的日期是否是本周
    /// </summary>
    /// <param name="someDate"></param>
    /// <returns></returns>
    public static bool IsThisWeek(DateTime someDate)
    {
    DateTime dt = DateTime.Now.Date;

    DateTime nowMon = dt.AddDays(1 - (Convert.ToInt32(dt.DayOfWeek.ToString("d")) == 0 ? 7 : Convert.ToInt32(dt.DayOfWeek.ToString("d"))));

    TimeSpan ts = someDate - nowMon;

    if (ts.Days > 0 && ts.Days < 7)
    {
    return true;
    }
    else
    {
    return false;
    }
    }

    /// <summary>根据日期,获得星期几</summary>
    /// <param name="y">年</param>
    /// <param name="m">月</param>
    /// <param name="d">日</param>
    /// <returns>星期几,1代表星期一;7代表星期日</returns>
    public static int getWeekDay(int y, int m, int d)
    {
    if (m == 1) m = 13;
    if (m == 2) m = 14;
    int week = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7 + 1;
    return week;
    }

    /// <summary>
    /// 计算指定日期的星期值。星期日为0,其他为对应的星期值
    /// 默认返回:int类型的星期值
    /// </summary>
    /// <param name="rq"> A System.DateTime</param>
    public static int CaculateWeekDay(DateTime rq)
    {
    int y = rq.Year;
    int m = rq.Month;
    int d = rq.Day;
    if (m == 1 || m == 2)
    {
    m += 12;
    y--;
    }
    int week = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400 + 1) % 7;
    return week;
    }

    /// <summary>
    /// 计算本周起始日期(礼拜一的日期)
    /// </summary>
    /// <param name="someDate">该周中任意一天</param>
    /// <returns>返回礼拜一日期,后面的具体时、分、秒和传入值相等</returns>
    public static DateTime CalculateFirstDateOfWeek(DateTime someDate)
    {
        int i = someDate.DayOfWeek - DayOfWeek.Monday;
        if (i == -1) i = 6;// i值 > = 0 ,因为枚举原因,Sunday排在最前,此时Sunday-Monday=-1,必须+7=6。
        TimeSpan ts = new TimeSpan(i, 0, 0, 0);
        return someDate.Subtract(ts);
    }

    /// <summary>
    /// 计算本周结束日期(礼拜日的日期)
    /// </summary>
    /// <param name="someDate">该周中任意一天</param>
    /// <returns>返回礼拜日日期,后面的具体时、分、秒和传入值相等</returns>
    public static DateTime CalculateLastDateOfWeek(DateTime someDate)
    {
        int i = someDate.DayOfWeek - DayOfWeek.Sunday;
        if(i != 0) i = 7 - i;// 因为枚举原因,Sunday排在最前,相减间隔要被7减。
        TimeSpan ts = new TimeSpan(i, 0, 0, 0);
        return someDate.Add(ts);
    }

  • 相关阅读:
    微信小程序 选择图片 并上传到服务器
    微信小程序 setData
    python--字典排序
    python--csv文件读写
    机器学习实战笔记--AdaBoost(实例代码)
    机器学习实战笔记--朴素贝叶斯(实例代码)
    python继承 super()
    机器学习实战笔记—决策树(代码讲解)
    java的基本认识
    Delphi制作DLL
  • 原文地址:https://www.cnblogs.com/zhuyilei/p/14118903.html
Copyright © 2020-2023  润新知