zoukankan      html  css  js  c++  java
  • 【C#开发中常用方法】日期计算

    /// <summary>
    /// 获取指定日期,在为一年中为第几周
    /// </summary>
    /// <param name="dt">指定时间</param>
    /// <reutrn>返回第几周</reutrn>
    private static int GetWeekOfYear(DateTime dt)
    {
       GregorianCalendar gc = new GregorianCalendar();
       int weekOfYear = gc.GetWeekOfYear(dt,CalendarWeekRule.FirstDay, DayOfWeek.Monday);
       return weekOfYear;
    }

    /// <summary>
    /// 求某年有多少周
    /// 返回 int
    /// </summary>
    /// <param name="strYear"></param>
    /// <returns>int</returns>
    public static int GetYearWeekCount(int strYear)
    {
        string returnStr = "";
        System.DateTime fDt = DateTime.Parse(strYear.ToString() + "-01-01");
        int k = Convert.ToInt32(fDt.DayOfWeek);//得到该年的第一天是周几
        if (k == 1)
        {
            int countDay = fDt.AddYears(1).AddDays(-1).DayOfYear;
            int countWeek = countDay / 7 + 1;
            return countWeek;
        }
        else
        {
            int countDay = fDt.AddYears(1).AddDays(-1).DayOfYear;
            int countWeek = countDay / 7 + 2;
            return countWeek;
        }
    }

    /// <summary>
    /// 得到一年中的某周的起始日和截止日
    /// 年 nYear
    /// 周数 nNumWeek
    /// 周始 out dtWeekStart
    /// 周终 out dtWeekeEnd
    /// </summary>
    /// <param name="nYear"></param>
    /// <param name="nNumWeek"></param>
    /// <param name="dtWeekStart"></param>
    /// <param name="dtWeekeEnd"></param>
    public static void GetWeek(int nYear, int nNumWeek, out DateTime dtWeekStart, out DateTime dtWeekeEnd)
    {
        DateTime dt = new DateTime(nYear, 1, 1);
        dt = dt + new TimeSpan((nNumWeek - 1) * 7, 0, 0, 0);
        dtWeekStart = dt.AddDays(-(int)dt.DayOfWeek + (int)DayOfWeek.Monday);
        dtWeekeEnd = dt.AddDays((int)DayOfWeek.Saturday - (int)dt.DayOfWeek + 1);
    }

    /// <summary>
    /// 求某年有多少周
    /// 返回 int
    /// </summary>
    /// <param name="strYear"></param>
    /// <returns>int</returns>
    public static int GetYearWeekCount(int strYear)
    {
        string returnStr = "";
        System.DateTime fDt = DateTime.Parse(strYear.ToString() + "-01-01");
        int k = Convert.ToInt32(fDt.DayOfWeek);//得到该年的第一天是周几
        if (k == 1)
        {
            int countDay = fDt.AddYears(1).AddDays(-1).DayOfYear;
            int countWeek = countDay / 7 + 1;
            return countWeek;
        }
        else
        {
            int countDay = fDt.AddYears(1).AddDays(-1).DayOfYear;
            int countWeek = countDay / 7 + 2;
            return countWeek;
        }
    }

  • 相关阅读:
    bzoj 3779 重组病毒——LCT维护子树信息
    bzoj 4010 [HNOI2015]菜肴制作——贪心
    bzoj 2535 && bzoj 2109 [Noi2010]Plane 航空管制——贪心
    bzoj 3671 [Noi2014]随机数生成器——贪心(时间复杂度分配)
    bzoj 2395 [Balkan 2011]Timeismoney——最小乘积生成树
    bzoj 3157 && bzoj 3516 国王奇遇记——推式子
    bzoj 1101 [POI2007]Zap——反演
    hdu 4372 Count the Buildings——第一类斯特林数
    bzoj 2406 矩阵——有源汇上下界可行流
    bzoj 2039 [2009国家集训队]employ人员雇佣——二元关系
  • 原文地址:https://www.cnblogs.com/LiCoco/p/6183608.html
Copyright © 2011-2022 走看看