zoukankan      html  css  js  c++  java
  • 用于查询的日期类型转换帮助类

    朋友炒股两个月赚了10万,我帮他推广一下公众号,把钱用来投资总比放银行连通货膨胀都跑不过里强硬核离职,在家炒股 ,这是他每天的日志,有些经验是花钱也买不到的。

    一、前言

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

    二、应用场景举例

    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         #region220         /// <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         #region274         /// <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         /// <summary>
    315         /// 将日期转换为本年的结束时间
    316         /// </summary>
    317         /// <param name="value">任意时间</param>
    318         /// <returns>2001-12-31 23:59:59</returns>
    319         public static DateTime ToYearEnd(DateTime value)
    320         {
    321             //根据年、月重新创建日期 
    322             DateTime yearStart = new DateTime(value.Year, 1, 1);
    323             //创建结束日期
    324             return new DateTime(value.Year, 1, 1).AddYears(1).AddSeconds(-1);
    325         }
    326         #endregion
    327     }
    328 }


    代码下载:DateTimeHelper.rar

    版权:http://www.cnblogs.com/iamlilinfeng

  • 相关阅读:
    CentOS 7.4 安装python3及虚拟环境
    【抓包工具之Fiddler】增加IP列;session高亮
    【抓包工具之Fiddler】导出jmeter脚本
    Python2.7 Centos安装
    Centos 轻松升级 GCC 不改变系统环境
    GraphLab 安装 出错 "Cannot uninstall 'boto'" "Cannot uninstall 'certifi'"
    Centos6 使用 gbdt lightgbm "libc.so.6: version `GLIBC_2.14' not found" "Segment Fault"
    Linux 安装 gbdt xgboost lightgbm
    Sudo Permission Denied
    Linux Load Average高但磁盘IO和CPU占用率不高的可能原因
  • 原文地址:https://www.cnblogs.com/iamlilinfeng/p/3378659.html
Copyright © 2011-2022 走看看