1、c中DateTime类/大家在做报表或查询的时候都会有给用户预设一些可选的日期范围(如上图) /如本年度销售额、本季度利润、本月新增客户 /C#里内置的DateTime基本上都可以实现这些功能,巧用DateTime会使你处理这些事来变轻松多了 /今天 ; /昨天,就是今天的日期减一 ; /明天,同理,加一 ; /本周(要知道本周的第一天就得先知道今天是星期几,从而得知本周的第一天就是几天前的那一天,要注意的是这里的每一周是从周日始至周六止 -Convert.ToInt16(; -Convert.ToInt16(; /如果你还不明白,再看一下中文显示星期几的方法就应该懂了 /由于DayOfWee
2、k返回的是数字的星期几,我们要把它转换成汉字方便我们阅读,有些人可能会用switch来一个一个地对照,其实不用那么麻烦的 stringDay=newstring星期日,星期一,星期二,星期三,星期四,星期五,星期六DayConvert.ToInt16(; /上周,同理,一个周是7天,上周就是本周再减去7天,下周也是一样 -Convert.ToInt16(-7).ToShortDateString(); -Convert.ToInt16(-7).ToShortDateString(); /下周 -Convert.ToInt16(+7).ToShortDateString(); -Convert.
3、ToInt16(+7).ToShortDateString(); /本月,很多人都会说本月的第一天嘛肯定是1号,最后一天就是下个月一号再减一天。当然这是对的 /一般的写法 +1;/第一天 DateTime.Parse(+1).AddMonths(1).AddDays(-1).ToShortDateString();/ 最后一天 /巧用C#里ToString的字符格式化更简便 yyyy-MM-01); DateTime.Parse(yyyy-MM-01).AddMonths(1).AddDays(-1).ToShortDateString()/上个月,减去一个月份 DateTime.Parse(
4、yyyy-MM-01).AddMonths(-1).ToShortDateString(); DateTime.Parse(yyyy-MM-01).AddDays(-1).ToShortDateString(); /下个月,加去一个月份 DateTime.Parse(yyyy-MM-01).AddMonths(1).ToShortDateString(); DateTime.Parse(yyyy-MM-01).AddMonths(2).AddDays(-1).ToShortDateString(); /7天后 ; ; /7天前 ; ; /本年度,用ToString的字符格式化我们也很容易地算出
5、本年度的第一天和最后一天 DateTime.Parse(yyyy-01-01).ToShortDateString(); DateTime.Parse(yyyy-01-01).AddYears(1).AddDays(-1).ToShortDateString(); /上年度,不用再解释了吧 DateTime.Parse(yyyy-01-01).AddYears(-1).ToShortDateString(); DateTime.Parse(yyyy-01-01).AddDays(-1).ToShortDateString(); /下年度 DateTime.Parse(yyyy-01-01).A
6、ddYears(1).ToShortDateString(); DateTime.Parse(yyyy-01-01).AddYears(2).AddDays(-1).ToShortDateString(); /本季度,很多人都会觉得这里难点,需要写个长长的过程来判断。其实不用的,我们都知道一年四个季度,一个季度三个月 /首先我们先把日期推到本季度第一个月,然后这个月的第一天就是本季度的第一天了 -(-1)%3).ToString(yyyy-MM-01); /同理,本季度的最后一天就是下季度的第一天减一 DateTime.Parse(-(-1)%3).ToString(yyyy-MM-01).A
7、ddDays(-1).ToShortDateString(); /下季度-(-1)%3).ToString(yyyy-MM-01); DateTime.Parse(-(-1)%3).ToString(yyyy-MM-01).AddDays(-1).ToShortDateString(); /上季度 -(-1)%3).ToString(yyyy-MM-01); DateTime.Parse(-(-1)%3).ToString(yyyy-MM-01).AddDays(-1).ToShortDateString();/如何获得当月有多少天int m=,;/获取某月的实际工作日(即不包括周六日)/调用
8、/int days =getDays(;private int getDays(System.DateTime date1)int m=,date1.Month);int mm=0;for(int i=1;i=m;i+)System.DateTime date=Convert.ToDateTime(date1.Year+-+date1.Month+-+i);switch (date.DayOfWeek)case case case case case mm=mm+1;break; return mm;获得任意两日期之间的有效工作日(不包括周六日) 获得任意两日期之间的有效工作日(不包括周六日)
9、#region 获得任意两日期之间的有效工作日(不包括周六日)/调用/DateTime date1=Convert.ToDateTime(2005-10-20);/DateTime date2=Convert.ToDateTime(2005-11-01);/int days =getDays(date1,date2);private int getDays(System.DateTime date1,System.DateTime date2)string m=DateDiff(EnumDateCompare.day,date1,date2).ToString(f0);int mm=0;for
10、(int i=0;i=Convert.ToInt32(m);i+)System.DateTime date=Convert.ToDateTime(date1.AddDays(i);switch (date.DayOfWeek)case case case case case mm=mm+1;break;return mm; #endregion 获得本周的周六和周日ConvertDateToWeek#region ConvertDateToWeekpublic static void ConvertDateToWeek(DateTime date,out DateTime firstdate,
11、out DateTime lastdate)DateTime first=;DateTime last=;switch (date.DayOfWeek) case first=date.AddDays(-1);last=date.AddDays(5);break;case first=date.AddDays(-2);last=date.AddDays(4);break;case first=date.AddDays(-3);last=date.AddDays(3);break;case first=date.AddDays(-4);last=date.AddDays(2);break;cas
12、e first=date.AddDays(-5);last=date.AddDays(1);break;case first=date.AddDays(-6);last=date;break;case first=date;last=date.AddDays(6);break;firstdate=first;lastdate=last;#endregion/调用DateTime firstdate=;DateTime lastdate=;ConvertDateToWeek(date,out firstdate,out lastdate);获得当前日期是该年度的第几周DateTime dt =
13、Convert.ToDateTime(2006-05-01);int weeks = dt.DayOfYear / 7 + 1;日期格式:yyyyMMdd HH:mm:ss(注意此字符串的字母大小写很严格)yyyy:代表年份MM: 代表月份dd: 代表天HH: 代表小时(24小时制)mm: 代表分钟ss: 代表秒DateTime dt = DateTime.Now;dt.ToString();/2005-11-5 13:21:25dt.ToFileTime().ToString();/1277564dt.ToFileTimeUtc().ToString();/16dt.ToLocalTime(
14、).ToString();/2005-11-5 21:21:25dt.ToLongDateString().ToString();/2005年11月5日dt.ToLongTimeString().ToString();/13:21:25dt.ToOADate().ToString();/38661.18dt.ToShortDateString().ToString();/2005-11-5dt.ToShortTimeString().ToString();/13:21dt.ToUniversalTime().ToString();/2005-11-5 5:21:25;/2005;/2005-1
15、1-5 0:00:00;/Saturday;/309;/13;/441;/30;/11;/28;/64;/13:30:28.4412864dt.ToString();/2005-11-5 13:47:04dt.AddYears(1).ToString();/2006-11-5 13:47:04dt.AddDays(1.1).ToString();/2005-11-6 16:11:04dt.AddHours(1.1).ToString();/2005-11-5 14:53:04dt.AddMilliseconds(1.1).ToString();/2005-11-5 13:47:04dt.Add
16、Months(1).ToString();/2005-12-5 13:47:04dt.AddSeconds(1.1).ToString();/2005-11-5 13:47:05dt.AddMinutes(1.1).ToString();/2005-11-5 13:48:10dt.AddTicks(1000).ToString();/2005-11-5 13:47:04dt.CompareTo(dt).ToString();/0dt.Add(?).ToString();/问号为一个时间段dt.Equals(2005-11-6 16:11:04).ToString();/Falsedt.Equals(dt).ToString();/Truedt.GetHashCode().ToString();/34dt.GetType().ToString();/System.DateTimedt.GetTypeCode().ToString();/DateTime
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1