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

简介: 本文转载:http://www.cnblogs.com/iamlilinfeng/p/3378659.html 最近工作比较忙,与此同时自己也在业余时间开发一个电子商务网站。虽然每天都很累,但感觉过的相当充实。

本文转载: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 
目录
相关文章
|
1月前
|
C#
C#学习相关系列之数据类型类的三大特性(二)
C#学习相关系列之数据类型类的三大特性(二)
|
1月前
|
C#
58.c#:directory类
58.c#:directory类
12 0
|
1月前
|
C#
57.c#:directorylnfo类
57.c#:directorylnfo类
13 0
|
1月前
|
C#
深入C#中的String类
深入C#中的String类
11 0
|
1月前
|
C#
C#学习系列相关之多线程(二)----Thread类介绍
C#学习系列相关之多线程(二)----Thread类介绍
|
1月前
|
C#
C#学习相关系列之数据类型类----嵌套类和嵌套方法(三)
C#学习相关系列之数据类型类----嵌套类和嵌套方法(三)
|
1月前
|
存储 C# 索引
C#学习相关系列之数据类型类的定义(一)
C#学习相关系列之数据类型类的定义(一)
|
1月前
|
存储 API C#
60.c#:steamreader类
60.c#:steamreader类
12 0
|
1月前
|
API C# vr&ar
59.c#:steamWriter类
59.c#:steamWriter类
16 0
|
1月前
|
C# 数据安全/隐私保护
56.c#:filelnfo类
56.c#:filelnfo类
13 2