C# 常用日期类型转换帮助类

本文转载:http://www.cnblogs.com/iamlilinfeng/p/3378659.html

最近工作比较忙,与此同时自己也在业余时间开发一个电子商务网站。虽然每天都很累,但感觉过的相当充实。由于时间紧张,最近没有经常来园子,只是有人留言的时候过来回复下。今天过来刷刷存在感。

二、应用场景举例

1.按指定日期查询

(1)用户在UI上选择日期;

(2)系统计算出今天的起始时间(****年**月**日 00:00:00)和今天的结束时间(****年**月**日 23:59:59);

(3)系统根据根据该日期范围到数据库取出该日期范围的数据。

如下图所示,查询指定日期的航班及机票数量:

2.按时间范围查询

(1)用户在UI上选择“起始日期”和“结束日期”;

(2)系统计算出开始日期的起始时间(****年**月**日 00:00:00);

(2)系统计算出结束日期的结束时间(****年**月**日 23:59:59);

(3)系统根据根据该日期范围到数据库取出该日期范围的数据。

如下图所示,比较常见的按日期查询:

3.按日、月、周、年查询(此处以按月查询为例)

(1)系统取出当前日期;

(2)系统根据当前日期计算出本月的开始日期的起始时间(****年**月**日 00:00:00);

(3)系统根据当前日期计算出本月的结束日期的结束时间(****年**月**日 23:59:59);

(4)系统根据根据该日期范围到数据库取出该日期范围的数据。

如下图所示,比较常见的月报表

4.最终效果

三、代码及下载

  1 /*
  2  *
  3  * 创建人:李林峰
  4  *
  5  * 时  间:2009-05-04
  6  *
  7  * 描  述:日期转换帮助类,常用于报表开发;
  8  * 可以转换成为:本日开始时间、本日结束时间、本周开始时间、本周结束时间、本月开始时间、本月结束时间、本年开始时间、本年结束时间
  9  *
 10  */
 11
 12 using System;
 13
 14 namespace SongCai8.WebSite
 15 {
 16     /// <summary>
 17     /// 日期转换帮助类
 18     /// </summary>
 19     public static class DateTimeHelper
 20     {
 21         #region 日
 22         /// <summary>
 23         /// 将日期转换为本日的开始时间
 24         /// </summary>
 25         /// <param name="value">2001-01-01</param>
 26         /// <returns>2001-01-01 00:00:00</returns>
 27         public static DateTime ToDayStart(string value)
 28         {
 29             //转换成日期类型
 30             DateTime date = System.Convert.ToDateTime(value);
 31             //转换成短日期类型字符
 32             string shortDate = date.ToShortDateString();
 33             //返回日期类型
 34             return System.Convert.ToDateTime(shortDate);
 35         }
 36
 37         /// <summary>
 38         /// 将日期转换为本日的开始时间
 39         /// </summary>
 40         /// <param name="value">任意时间</param>
 41         /// <returns>2001-01-01 00:00:00</returns>
 42         public static DateTime ToDayStart(DateTime value)
 43         {
 44             //转换成短日期类型字符
 45             string shortDate = value.ToShortDateString();
 46             //返回日期类型
 47             return System.Convert.ToDateTime(shortDate);
 48         }
 49
 50         /// <summary>
 51         /// 将日期转换为本日的开始时间
 52         /// </summary>
 53         /// <param name="value">2001-01-01</param>
 54         /// <returns>2001-01-01 23:59:59</returns>
 55         public static DateTime ToDayEnd(string value)
 56         {
 57             //转换成日期类型
 58             DateTime date = System.Convert.ToDateTime(value);
 59             //转换成短日期类型
 60             DateTime shortDate = System.Convert.ToDateTime(date.ToShortDateString());
 61             //返回日期加一天减一秒
 62             return shortDate.AddDays(1).AddSeconds(-1);
 63         }
 64
 65         /// <summary>
 66         /// 将日期转换为本日的结束时间
 67         /// </summary>
 68         /// <param name="value">任意时间</param>
 69         /// <returns>2001-01-01 23:59:59</returns>
 70         public static DateTime ToDayEnd(DateTime value)
 71         {
 72             //转换成短日期类型
 73             DateTime shortDate = System.Convert.ToDateTime(value.ToShortDateString());
 74             //返回日期加一天减一秒
 75             return shortDate.AddDays(1).AddSeconds(-1);
 76         }
 77         #endregion
 78
 79         #region 周
 80         /// <summary>
 81         /// 将日期转换为本周的开始时间
 82         /// </summary>
 83         /// <param name="value">2001-01-01</param>
 84         /// <returns>2001-01-01 00:00:00</returns>
 85         public static DateTime ToWeekStart(string value)
 86         {
 87             //转换成日期类型
 88             DateTime date = System.Convert.ToDateTime(value);
 89             //根据当前时间取出该周周一的当前时间
 90             DateTime weekStart = ToWeekStart(date, date.Date.DayOfWeek);
 91             //转换成短日期类型字符
 92             string shortDate = weekStart.ToShortDateString();
 93             //返回日期类型
 94             return System.Convert.ToDateTime(shortDate);
 95         }
 96
 97         /// <summary>
 98         /// 将日期转换为本周的开始时间
 99         /// </summary>
100         /// <param name="value">任意时间</param>
101         /// <returns>2001-01-01 00:00:00</returns>
102         public static DateTime ToWeekStart(DateTime value)
103         {
104             //根据当前时间取出该周周一的当前时间
105             DateTime weekStart = ToWeekStart(value, value.Date.DayOfWeek);
106             //转换成短日期类型字符
107             string shortDate = weekStart.ToShortDateString();
108             //返回日期类型
109             return System.Convert.ToDateTime(shortDate);
110         }
111
112         /// <summary>
113         /// 将日期转换为本周的结束时间
114         /// </summary>
115         /// <param name="value">2001-01-01</param>
116         /// <returns>2001-01-01 23:59:59</returns>
117         public static DateTime ToWeekEnd(string value)
118         {
119             //转换成日期类型
120             DateTime date = System.Convert.ToDateTime(value);
121             //根据当前时间取出该周周末的当前时间
122             DateTime weekEnd = ToWeekEnd(date, date.Date.DayOfWeek);
123             //转换成短日期类型字符
124             string shortDate = weekEnd.ToShortDateString();
125             //返回日期加一天减一秒
126             return Convert.ToDateTime(shortDate).AddDays(1).AddSeconds(-1);
127         }
128
129         /// <summary>
130         /// 将日期转换为本周的结束时间
131         /// </summary>
132         /// <param name="value">任意时间</param>
133         /// <returns>2001-01-01 23:59:59</returns>
134         public static DateTime ToWeekEnd(DateTime value)
135         {
136             //根据当前时间取出该周周末的当前时间
137             DateTime weekEnd = ToWeekEnd(value, value.Date.DayOfWeek);
138             //转换成短日期类型字符
139             string shortDate = weekEnd.ToShortDateString();
140             //返回日期类型
141             //返回日期加一天减一秒
142             return Convert.ToDateTime(shortDate).AddDays(1).AddSeconds(-1);
143         }
144
145         /// <summary>
146         /// 将日期转换为本周周一的某一时间
147         /// </summary>
148         /// <param name="date">将要转换的日期</param>
149         /// <param name="week">传入日期的周的枚举类型</param>
150         /// <returns>2001-01-01 12:12:12</returns>
151         private static DateTime ToWeekStart(DateTime date, DayOfWeek week)
152         {
153             DateTime WeekStart = new DateTime();
154             switch (week)
155             {
156                 case DayOfWeek.Monday:
157                     WeekStart = date;
158                     break;
159                 case DayOfWeek.Tuesday:
160                     WeekStart = date.AddDays(-1);
161                     break;
162                 case DayOfWeek.Wednesday:
163                     WeekStart = date.AddDays(-2);
164                     break;
165                 case DayOfWeek.Thursday:
166                     WeekStart = date.AddDays(-3);
167                     break;
168                 case DayOfWeek.Friday:
169                     WeekStart = date.AddDays(-4);
170                     break;
171                 case DayOfWeek.Saturday:
172                     WeekStart = date.AddDays(-5);
173                     break;
174                 case DayOfWeek.Sunday:
175                     WeekStart = date.AddDays(-6);
176                     break;
177             }
178             return WeekStart;
179         }
180
181         /// <summary>
182         /// 将日期转换为本周周日的某一时间
183         /// </summary>
184         /// <param name="date">将要转换的日期</param>
185         /// <param name="week">传入日期的周的枚举类型</param>
186         /// <returns>2001-01-01 12:12:12</returns>
187         private static DateTime ToWeekEnd(DateTime date, DayOfWeek week)
188         {
189             DateTime WeekStart = new DateTime();
190             switch (week)
191             {
192                 case DayOfWeek.Monday:
193                     WeekStart = date.AddDays(6);
194                     break;
195                 case DayOfWeek.Tuesday:
196                     WeekStart = date.AddDays(5);
197                     break;
198                 case DayOfWeek.Wednesday:
199                     WeekStart = date.AddDays(4);
200                     break;
201                 case DayOfWeek.Thursday:
202                     WeekStart = date.AddDays(3);
203                     break;
204                 case DayOfWeek.Friday:
205                     WeekStart = date.AddDays(2);
206                     break;
207                 case DayOfWeek.Saturday:
208                     WeekStart = date.AddDays(1);
209                     break;
210                 case DayOfWeek.Sunday:
211                     WeekStart = date;
212                     break;
213             }
214             return WeekStart;
215         }
216
217         #endregion
218
219         #region 月
220         /// <summary>
221         /// 将日期转换为本月的开始时间
222         /// </summary>
223         /// <param name="value">2001-01-01</param>
224         /// <returns>2001-01-01 00:00:00</returns>
225         public static DateTime ToMonthStart(string value)
226         {
227             //转换成日期类型
228             DateTime date = System.Convert.ToDateTime(value);
229             //根据年、月重新创建日期
230             return new DateTime(date.Year, date.Month, 1);
231         }
232
233         /// <summary>
234         /// 将日期转换为本月的开始时间
235         /// </summary>
236         /// <param name="value">任意时间</param>
237         /// <returns>2001-01-01 00:00:00</returns>
238         public static DateTime ToMonthStart(DateTime value)
239         {
240             //根据年、月重新创建日期
241             return new DateTime(value.Year, value.Month, 1);
242         }
243
244         /// <summary>
245         /// 将日期转换为本月的结束时间
246         /// </summary>
247         /// <param name="value">2001-01-01</param>
248         /// <returns>2001-01-31 23:59:59</returns>
249         public static DateTime ToMonthEnd(string value)
250         {
251             //转换成日期类型
252             DateTime date = System.Convert.ToDateTime(value);
253             //根据年、月重新创建日期
254             DateTime monthStart = new DateTime(date.Year, date.Month, 1);
255             //创建结束日期
256             return monthStart.AddMonths(1).AddSeconds(-1);
257         }
258
259         /// <summary>
260         /// 将日期转换为本月的结束时间
261         /// </summary>
262         /// <param name="value">任意时间</param>
263         /// <returns>2001-01-31 23:59:59</returns>
264         public static DateTime ToMonthEnd(DateTime value)
265         {
266             //根据年、月重新创建日期
267             DateTime monthStart = new DateTime(value.Year, value.Month, 1);
268             //创建结束日期
269             return monthStart.AddMonths(1).AddSeconds(-1);
270         }
271         #endregion
272
273         #region 年
274         /// <summary>
275         /// 将日期转换为本年的开始时间
276         /// </summary>
277         /// <param name="value">2001-01-01</param>
278         /// <returns>2001-01-01 00:00:00</returns>
279         public static DateTime ToYearStart(string value)
280         {
281             //转换成日期类型
282             DateTime date = System.Convert.ToDateTime(value);
283             //根据年、月重新创建日期
284             return new DateTime(date.Year, 1, 1);
285         }
286
287         /// <summary>
288         /// 将日期转换为本年的开始时间
289         /// </summary>
290         /// <param name="value">任意时间</param>
291         /// <returns>2001-01-01 00:00:00</returns>
292         public static DateTime ToYearStart(DateTime value)
293         {
294             //根据年、月重新创建日期
295             return new DateTime(value.Year, 1, 1);
296         }
297
298         /// <summary>
299         /// 将日期转换为本年的结束时间
300         /// </summary>
301         /// <param name="value">2001-01-01</param>
302         /// <returns>2001-12-31 23:59:59</returns>
303         public static DateTime ToYearEnd(string value)
304         {
305             //转换成日期类型
306             DateTime date = System.Convert.ToDateTime(value);
307             //根据年、月重新创建日期
308             DateTime yearStart = new DateTime(date.Year, 1, 1);
309             //创建结束日期
310             DateTime yearEnd = new DateTime(date.Year, 1, 1).AddYears(1).AddSeconds(-1);
311             return yearEnd;
312         }
313
314         
时间: 2024-10-27 06:02:42

C# 常用日期类型转换帮助类的相关文章

用于查询的日期类型转换帮助类

本文转载:http://www.cnblogs.com/iamlilinfeng/p/3378659.html 1.按指定日期查询 (1)用户在UI上选择日期; (2)系统计算出今天的起始时间(****年**月**日 00:00:00)和今天的结束时间(****年**月**日 23:59:59); (3)系统根据根据该日期范围到数据库取出该日期范围的数据. 三.代码及下载 /* * * 创建人:李林峰 * * 时 间:2009-05-04 * * 描 述:日期转换帮助类,常用于报表开发; * 可

Java API的Date, Calendar日期处理相关类分析

calendar 简介 在计算机程序中精确的处理日期是困难的.不仅有显而易见的(英语: January, 法语: Janvier, 德语: Januar, 等)国际化需求, 而且得考虑不同的日期系统(并非所有的文化都用基督耶稣的生日作为纪年的开始).如有高精度或非常大规模的时间需要被处理, 就有额外的方面需要被注意,比如闰秒或时间系统的变化.(公历(阳历, 格里高利历法)在西方被普遍接受是在1582年,但并非所有的国家在同一天接受!) 尽管有关于闰秒, 时区, 夏令时, 阴历的问题, 度量时间却

Java常用正则表达式验证工具类RegexUtils.java_java

正则表达式常常用来验证各种表单,Java 表单注册常用正则表达式验证工具类,常用正则表达式大集合. 1. 电话号码 2. 邮编 3. QQ 4. E-mail 5. 手机号码 6. URL 7. 是否为数字 8. 是否为中文 9. 身份证 10. 域名 11. IP .... 常用验证应有尽有! 这的确是您从事 web 开发,服务器端表单验证之良品!你,值得拥有 ^_^ /* * Copyright 2012-2013 The Haohui Network Corporation */ pack

Java中的日期和时间类以及Calendar类用法详解_java

Java日期和时间类简介 Java 的日期和时间类位于 java.util 包中.利用日期时间类提供的方法,可以获取当前的日期和时间,创建日期和时间参数,计算和比较时间. Date 类 Date 类是 Java 中的日期时间类,其构造方法比较多,下面是常用的两个: Date():使用当前的日期和时间初始化一个对象. Date(long millisec):从1970年01月01日00时(格林威治时间)开始以毫秒计算时间,计算 millisec 毫秒.如果运行 Java 程序的本地时区是北京时区(

日期特殊操作控制类

控制 <?//日期特殊操作控制类//宇凡 8月15日?><? //获取"YYYY-mm-dd"格式的当前时间 function NowDate() {  $result = date("Y")."-".date("m")."-".date("d");  return $result; }  //获取"YYYY-mm-dd HH:ii:ss"格式的当前

php常用表单验证类用法实例

  本文实例讲述了php常用表单验证类用法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

PHP常用处理静态操作类

 详细一个PHP开发时常用处理的操作类 - 希望大家多多补充 - 完善这个操作类   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72

.NET 日期与时间类System.DateTime

日期与时间类表示时间上的一刻,通常以日期和当天的时间表示.如表3-10所示. 表4 日期与时间类函数 属性或函数名 属性或函数作用 Date 获取此实例的日期部分 Day 获取此实例所表示的日期为该月中的第几天 DayOfWeek 获取此实例所表示的日期是星期几 DayOfYear 获取此实例所表示的日期是该年中的第几天 Hour 获取此实例所表示日期的小时部分 Millisecond 获取此实例所表示日期的毫秒部分 Minute 获取此实例所表示日期的分钟部分 Month 获取此实例所表示日期

我常用的几个类_php基础

我常用的几个类 修改自hk的 PHP代码:--------------------------------------------------------------------------------/*作用:取得随机字符串参数:    1.(int)$length = 32 #随机字符长度,默认为32    2.(int)$mode = 0 #随机字符类型,0为大小写英文和数字,1为数字,2为小写子木,3为大写字母,4为大小写字母,5为大写字母和数字,6为小写字母和数字返回:取得的字符串使用