zoukankan      html  css  js  c++  java
  • 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);
    }

  • 相关阅读:
    局域网文件实时同步工具
    SQLServer备份恢复助手(太强大了!)
    SQLServer 统计查询语句消耗时间
    如何将Sql server数据库中的模型图转化到Word中--并能够查看字段的属性信息
    创建Database Diagrams时遇到的问题
    bat 操作数据库(附加,分离,删除,还原)
    Bat 多个执行操作选择
    Redis Windows下查看版本号
    ThinkPHP 数据库操作(七) : 视图查询、子查询、原生查询
    ThinkPHP 数据库操作(六) : 查询事件、事务操作、监听SQL
  • 原文地址:https://www.cnblogs.com/zhuyilei/p/14118903.html
Copyright © 2011-2022 走看看