博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#开发中常用方法------日期计算
阅读量:7191 次
发布时间:2019-06-29

本文共 2070 字,大约阅读时间需要 6 分钟。

/// <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;
    }
}

 

转载于:https://www.cnblogs.com/LiCoco/p/6183608.html

你可能感兴趣的文章
定时清理clientmqueue目录垃圾文件防止占满磁盘空间
查看>>
计算将一个十进制整数转换成二进制含多少个1
查看>>
Flex 当鼠标悬停在DataGrid某行上时用datatoolField显示当前行
查看>>
关于Integer包装类对象之间值的比较
查看>>
7.4 括号匹配
查看>>
nginx + fastDFS 设置开机自动启动
查看>>
腾讯云服务器 安装fastdfs文件服务器
查看>>
经典的计算机语言
查看>>
X5内核浏览器video自动全屏解决办法-canvas
查看>>
网络管理中的常见软件和管理维护
查看>>
myeclipse2014如何添加源码反编译工具插件
查看>>
ASP.NET网站入侵第二波(LeaRun.信息化快速开发框架 已被笔者拿下)
查看>>
Ehome项目服务器端由Eclipse切换到IDEA
查看>>
Making the Grade (bzoj1592)
查看>>
Redis.py客户端的命令总结【一】
查看>>
AlertDialog错误
查看>>
Tiling 简单递推+大数
查看>>
iOS开发UI篇—Quartz2D使用(绘制基本图形)
查看>>
java web servlet
查看>>
几个博客
查看>>