zoukankan      html  css  js  c++  java
  • C# 中的时间(DataTime)

      在做报表或查询的时候,常常会预设一些可选的日期范围,如本周、本月、本年等,利用 C# 内置的DateTime基本上都可以实现这些功能。

    当前时间:

      DateTime dt = DateTime.Now;  //当前时间 

    今天、昨天、明天:

      dt.ToShortDateString();      //今天
      dt.AddDays(-1).ToShortDateString();        //昨天 —— 今天的日期减一
      dt.AddDays(1).ToShortDateString();         //明天,同理,加一

    本周周一、周日:

      DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d")));  //本周周一  
      DateTime endWeek = startWeek.AddDays(6);        //本周周日 

    上周周一、周日,下周周一、周日:

      DateTime lastWeekStart = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d"))-7);    //上周周一  
      DateTime lastWeekEnd = lastWeekStart.AddDays(6);                          //上周周日
    
      DateTime nextWeekStart = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d"))+7);    //下周周一  
      DateTime nextWeekEnd = nextWeekStart.AddDays(6);                          //下周周日

    显示今天星期几:

      string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
      Day[Convert.ToInt16(DateTime.Now.DayOfWeek)];

    本月月初、月末:

      DateTime startMonth = dt.AddDays(1 - dt.Day);        //本月月初  
      DateTime endMonth = startMonth.AddMonths(1).AddDays(-1);  //本月月末
      //字符串形式
      dt.ToString("yyyy-MM-01");  
      dt.AddMonths(1).AddDays(- dt.Day).ToShortDateString(); 

    上个月:月份减1

    下个月:月份加1

    本季度:

      DateTime startQuarter = dt.AddMonths(0 - (dt.Month - 1) % 3).AddDays(1 - dt.Day);  //本季度初  
      DateTime endQuarter = startQuarter.AddMonths(3).AddDays(-1);  //本季度末 

    本年年初、年末:

      DateTime startYear = new DateTime(dt.Year, 1, 1);  //本年年初  
      DateTime endYear = new DateTime(dt.Year, 12, 31);  //本年年末

    DataTime 其他常用方法、操作:

    DateTime dt = DateTime.Now;
    dt.ToString();//2005-11-5 13:21:25
    
    dt.ToLongDateString().ToString();//2005年11月5日 dt.ToLongTimeString().ToString();//13:21:25 dt.ToShortDateString().ToString();//2005-11-5 dt.ToShortTimeString().ToString();//13:21 dt.Year.ToString();//2005 dt.Date.ToString();//2005-11-5 0:00:00
    dt.DayOfWeek.ToString();//Saturday dt.DayOfYear.ToString();//309
    dt.Hour.ToString();//13 dt.Millisecond.ToString();//441 dt.Minute.ToString();//30 dt.Month.ToString();//11 dt.Second.ToString();//28
    dt.Ticks.ToString();//632667942284412864 dt.TimeOfDay.ToString();//13:30:28.4412864 dt.ToString();//2005-11-5 13:47:04 dt.AddYears(1).ToString();//2006-11-5 13:47:04 dt.AddDays(1.1).ToString();//2005-11-6 16:11:04 dt.AddHours(1.1).ToString();//2005-11-5 14:53:04 dt.AddMilliseconds(1.1).ToString();//2005-11-5 13:47:04 dt.AddMonths(1).ToString();//2005-12-5 13:47:04 dt.AddSeconds(1.1).ToString();//2005-11-5 13:47:05 dt.AddMinutes(1.1).ToString();//2005-11-5 13:48:10 dt.AddTicks(1000).ToString();//2005-11-5 13:47:04
    dt.CompareTo(dt).ToString();//0 dt.Add(?).ToString();//问号为一个时间段 dt.Equals("2005-11-6 16:11:04").ToString();//False dt.Equals(dt).ToString();//True dt.GetHashCode().ToString();//1474088234 dt.GetType().ToString();//System.DateTime dt.GetTypeCode().ToString();//DateTime dt.GetDateTimeFormats('s')[0].ToString();//2005-11-05T14:06:25 dt.GetDateTimeFormats('t')[0].ToString();//14:06 dt.GetDateTimeFormats('y')[0].ToString();//2005年11月 dt.GetDateTimeFormats('D')[0].ToString();//2005年11月5日 dt.GetDateTimeFormats('D')[1].ToString();//2005 11 05 dt.GetDateTimeFormats('D')[2].ToString();//星期六 2005 11 05 dt.GetDateTimeFormats('D')[3].ToString();//星期六 2005年11月5日 dt.GetDateTimeFormats('M')[0].ToString();//11月5日 dt.GetDateTimeFormats('f')[0].ToString();//2005年11月5日 14:06 dt.GetDateTimeFormats('g')[0].ToString();//2005-11-5 14:06 dt.GetDateTimeFormats('r')[0].ToString();//Sat, 05 Nov 2005 14:06:25 GMT string.Format("{0:d}",dt);//2005-11-5 string.Format("{0:D}",dt);//2005年11月5日 string.Format("{0:f}",dt);//2005年11月5日 14:23 string.Format("{0:F}",dt);//2005年11月5日 14:23:23 string.Format("{0:g}",dt);//2005-11-5 14:23 string.Format("{0:G}",dt);//2005-11-5 14:23:23 string.Format("{0:M}",dt);//11月5日 string.Format("{0:R}",dt);//Sat, 05 Nov 2005 14:23:23 GMT string.Format("{0:s}",dt);//2005-11-05T14:23:23 string.Format("{0:t}",dt);//14:23 string.Format("{0:T}",dt);//14:23:23 string.Format("{0:u}",dt);//2005-11-05 14:23:23Z string.Format("{0:U}",dt);//2005年11月5日 6:23:23 string.Format("{0:Y}",dt);//2005年11月 string.Format("{0}",dt);//2005-11-5 14:23:23 string.Format("{0:yyyyMMddHHmmssffff}",dt); 计算2个日期之间的天数差 ----------------------------------------------- DateTime dt1 = Convert.DateTime("2007-8-1"); DateTime dt2 = Convert.DateTime("2007-8-15"); TimeSpan span = dt2.Subtract(dt1); int dayDiff = span.Days + 1; 计算某年某月的天数 ----------------------------------------------- int days = DateTime.DaysInMonth(2007, 8); days = 31;
  • 相关阅读:
    使用某些 DOCTYPE 时会导致 document.body.scrollTop 失效
    VB.NET 笔记1
    知识管理系统Data Solution研发日记之一 场景设计与需求列出
    知识管理系统Data Solution研发日记之五 网页下载,转换,导入
    折腾了这么多年的.NET开发,也只学会了这么几招 软件开发不是生活的全部,但是好的生活全靠它了
    分享制作精良的知识管理系统 博客园博客备份程序 Site Rebuild
    知识管理系统Data Solution研发日记之四 片段式数据解决方案
    知识管理系统Data Solution研发日记之二 应用程序系列
    知识管理系统Data Solution研发日记之七 源代码与解决方案
    知识管理系统Data Solution研发日记之三 文档解决方案
  • 原文地址:https://www.cnblogs.com/zhangchaoran/p/7685203.html
Copyright © 2011-2022 走看看