zoukankan      html  css  js  c++  java
  • 日期帮助类

    一、引用

    1 using System;

    二、使用

    1、日期帮助类

      1         #region 获得时间戳
      2         /// <summary>
      3         /// 获得时间戳
      4         /// </summary>
      5         /// <returns></returns>
      6         public static string GetTimeStamp()
      7         {
      8             TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
      9             return Convert.ToInt64(ts.TotalMilliseconds).ToString();
     10         }
     11         #endregion
     12 
     13         #region 时间转提示文本
     14         /// <summary>
     15         /// 时间转提示文本
     16         /// </summary>
     17         /// <param name="days"></param>
     18         /// <param name="hours">小时</param>
     19         /// <param name="minutes">分钟</param>
     20         /// <param name="seconds"></param>
     21         /// <param name="IsMilliseconds">是否获取毫秒级</param>
     22         /// <returns></returns>
     23         public static string TimeToTooltip(int days, int hours, int minutes, int seconds, bool IsMilliseconds)
     24         {
     25             TimeSpan ts = new TimeSpan(days, hours, minutes, seconds);
     26             var tooltip = "";
     27             if (ts.Days > 0)
     28             {
     29                 tooltip += ts.Days + "";
     30             }
     31             if (ts.Hours > 0)
     32             {
     33                 tooltip += ts.Hours + "小时";
     34             }
     35             if (ts.Minutes > 0)
     36             {
     37                 tooltip += ts.Minutes + "分钟";
     38             }
     39             if (ts.Seconds > 0)
     40             {
     41                 tooltip += ts.Seconds + "";
     42             }
     43             if (IsMilliseconds && ts.Milliseconds > 0)
     44             {
     45                 tooltip += ts.Milliseconds + "毫秒";
     46             }
     47             return tooltip;
     48         }
     49         #endregion
     50 
     51         #region 把秒转换成分钟
     52         /// <summary>
     53         /// 把秒转换成分钟
     54         /// </summary>
     55         /// <returns></returns>
     56         public static int SecondToMinute(int Second)
     57         {
     58             decimal mm = (decimal)((decimal)Second / (decimal)60);
     59             return Convert.ToInt32(Math.Ceiling(mm));
     60         }
     61         #endregion
     62 
     63         #region 返回时间差
     64         /// <summary>
     65         /// 返回时间差
     66         /// </summary>
     67         /// <param name="DateTime1"></param>
     68         /// <param name="DateTime2"></param>
     69         /// <returns></returns>
     70         public static string DateDiff(DateTime DateTime1, DateTime DateTime2)
     71         {
     72             string dateDiff = null;
     73             try
     74             {
     75                 //TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
     76                 //TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
     77                 //TimeSpan ts = ts1.Subtract(ts2).Duration();
     78                 TimeSpan ts = DateTime2 - DateTime1;
     79                 if (ts.Days >= 1)
     80                 {
     81                     dateDiff = DateTime1.Month.ToString() + "" + DateTime1.Day.ToString() + "";
     82                 }
     83                 else
     84                 {
     85                     if (ts.Hours > 1)
     86                     {
     87                         dateDiff = ts.Hours.ToString() + "小时前";
     88                     }
     89                     else
     90                     {
     91                         dateDiff = ts.Minutes.ToString() + "分钟前";
     92                     }
     93                 }
     94             }
     95             catch
     96             { }
     97             return dateDiff;
     98         } 
     99         #endregion
    100 
    101         #region 获得两个日期的间隔
    102         /// <summary>
    103         /// 获得两个日期的间隔
    104         /// </summary>
    105         /// <param name="DateTime1">日期一。</param>
    106         /// <param name="DateTime2">日期二。</param>
    107         /// <returns>日期间隔TimeSpan。</returns>
    108         public static TimeSpan DateDiff2(DateTime DateTime1, DateTime DateTime2)
    109         {
    110             TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
    111             TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
    112             TimeSpan ts = ts1.Subtract(ts2).Duration();
    113             return ts;
    114         }
    115         #endregion
    116 
    117         #region 格式化日期时间
    118         /// <summary>
    119         /// 格式化日期时间
    120         /// </summary>
    121         /// <param name="dateTime1">日期时间</param>
    122         /// <param name="dateMode">显示模式</param>
    123         /// <returns>0-9种模式的日期</returns>
    124         public static string FormatDate(DateTime dateTime1, string dateMode)
    125         {
    126             switch (dateMode)
    127             {
    128                 case "0":
    129                     return dateTime1.ToString("yyyy-MM-dd");
    130                 case "1":
    131                     return dateTime1.ToString("yyyy-MM-dd HH:mm:ss");
    132                 case "2":
    133                     return dateTime1.ToString("yyyy/MM/dd");
    134                 case "3":
    135                     return dateTime1.ToString("yyyy年MM月dd日");
    136                 case "4":
    137                     return dateTime1.ToString("MM-dd");
    138                 case "5":
    139                     return dateTime1.ToString("MM/dd");
    140                 case "6":
    141                     return dateTime1.ToString("MM月dd日");
    142                 case "7":
    143                     return dateTime1.ToString("yyyy-MM");
    144                 case "8":
    145                     return dateTime1.ToString("yyyy/MM");
    146                 case "9":
    147                     return dateTime1.ToString("yyyy年MM月");
    148                 default:
    149                     return dateTime1.ToString();
    150             }
    151         }
    152         #endregion
    153 
    154         #region 将时间格式化成 年月日 的形式,如果时间为null,返回当前系统时间
    155         /// <summary>
    156         /// 将时间格式化成 年月日 的形式,如果时间为null,返回当前系统时间
    157         /// </summary>
    158         /// <param name="dt">年月日分隔符</param>
    159         /// <param name="Separator"></param>
    160         /// <returns></returns>
    161         public static string GetFormatDate(DateTime dt, char Separator)
    162         {
    163             if (dt != null && !dt.Equals(DBNull.Value))
    164             {
    165                 string tem = string.Format("yyyy{0}MM{1}dd", Separator, Separator);
    166                 return dt.ToString(tem);
    167             }
    168             else
    169             {
    170                 return GetFormatDate(DateTime.Now, Separator);
    171             }
    172         }
    173         #endregion
    174 
    175         #region 将时间格式化成 时分秒 的形式,如果时间为null,返回当前系统时间
    176         /// <summary>
    177         /// 将时间格式化成 时分秒 的形式,如果时间为null,返回当前系统时间
    178         /// </summary>
    179         /// <param name="dt"></param>
    180         /// <param name="Separator"></param>
    181         /// <returns></returns>
    182         public static string GetFormatTime(DateTime dt, char Separator)
    183         {
    184             if (dt != null && !dt.Equals(DBNull.Value))
    185             {
    186                 string tem = string.Format("hh{0}mm{1}ss", Separator, Separator);
    187                 return dt.ToString(tem);
    188             }
    189             else
    190             {
    191                 return GetFormatDate(DateTime.Now, Separator);
    192             }
    193         } 
    194         #endregion
    195          
    196         #region 得到随机日期
    197         /// <summary>
    198         /// 得到随机日期
    199         /// </summary>
    200         /// <param name="time1">起始日期</param>
    201         /// <param name="time2">结束日期</param>
    202         /// <returns>间隔日期之间的 随机日期</returns>
    203         public static DateTime GetRandomTime(DateTime time1, DateTime time2)
    204         {
    205             Random random = new Random();
    206             DateTime minTime = new DateTime();
    207             DateTime maxTime = new DateTime();
    208 
    209             System.TimeSpan ts = new System.TimeSpan(time1.Ticks - time2.Ticks);
    210 
    211             // 获取两个时间相隔的秒数
    212             double dTotalSecontds = ts.TotalSeconds;
    213             int iTotalSecontds = 0;
    214 
    215             if (dTotalSecontds > System.Int32.MaxValue)
    216             {
    217                 iTotalSecontds = System.Int32.MaxValue;
    218             }
    219             else if (dTotalSecontds < System.Int32.MinValue)
    220             {
    221                 iTotalSecontds = System.Int32.MinValue;
    222             }
    223             else
    224             {
    225                 iTotalSecontds = (int)dTotalSecontds;
    226             }
    227 
    228 
    229             if (iTotalSecontds > 0)
    230             {
    231                 minTime = time2;
    232                 maxTime = time1;
    233             }
    234             else if (iTotalSecontds < 0)
    235             {
    236                 minTime = time1;
    237                 maxTime = time2;
    238             }
    239             else
    240             {
    241                 return time1;
    242             }
    243 
    244             int maxValue = iTotalSecontds;
    245 
    246             if (iTotalSecontds <= System.Int32.MinValue)
    247                 maxValue = System.Int32.MinValue + 1;
    248 
    249             int i = random.Next(System.Math.Abs(maxValue));
    250 
    251             return minTime.AddSeconds(i);
    252         }
    253         #endregion
    254 
    255         #region 返回某年某月最后一天
    256         /// <summary>
    257         /// 返回某年某月最后一天
    258         /// </summary>
    259         /// <param name="year">年份</param>
    260         /// <param name="month">月份</param>
    261         /// <returns></returns>
    262         public static int GetMonthLastDate(int year, int month)
    263         {
    264             DateTime lastDay = new DateTime(year, month, new System.Globalization.GregorianCalendar().GetDaysInMonth(year, month));
    265             int Day = lastDay.Day;
    266             return Day;
    267         }
    268         #endregion
    269 
    270         #region 返回某月的第一天和最后一天
    271         /// <summary>
    272         /// 返回某月的第一天和最后一天
    273         /// </summary>
    274         /// <param name="month"></param>
    275         /// <param name="firstDay"></param>
    276         /// <param name="lastDay"></param>
    277         public static void ReturnDateFormat(int month, out string firstDay, out string lastDay)
    278         {
    279             int year = DateTime.Now.Year + month / 12;
    280             if (month != 12)
    281             {
    282                 month = month % 12;
    283             }
    284             switch (month)
    285             {
    286                 case 1:
    287                     firstDay = DateTime.Now.ToString(year + "-0" + month + "-01");
    288                     lastDay = DateTime.Now.ToString(year + "-0" + month + "-31");
    289                     break;
    290                 case 2:
    291                     firstDay = DateTime.Now.ToString(year + "-0" + month + "-01");
    292                     if (DateTime.IsLeapYear(DateTime.Now.Year))
    293                         lastDay = DateTime.Now.ToString(year + "-0" + month + "-29");
    294                     else
    295                         lastDay = DateTime.Now.ToString(year + "-0" + month + "-28");
    296                     break;
    297                 case 3:
    298                     firstDay = DateTime.Now.ToString(year + "-0" + month + "-01");
    299                     lastDay = DateTime.Now.ToString("yyyy-0" + month + "-31");
    300                     break;
    301                 case 4:
    302                     firstDay = DateTime.Now.ToString(year + "-0" + month + "-01");
    303                     lastDay = DateTime.Now.ToString(year + "-0" + month + "-30");
    304                     break;
    305                 case 5:
    306                     firstDay = DateTime.Now.ToString(year + "-0" + month + "-01");
    307                     lastDay = DateTime.Now.ToString(year + "-0" + month + "-31");
    308                     break;
    309                 case 6:
    310                     firstDay = DateTime.Now.ToString(year + "-0" + month + "-01");
    311                     lastDay = DateTime.Now.ToString(year + "-0" + month + "-30");
    312                     break;
    313                 case 7:
    314                     firstDay = DateTime.Now.ToString(year + "-0" + month + "-01");
    315                     lastDay = DateTime.Now.ToString(year + "-0" + month + "-31");
    316                     break;
    317                 case 8:
    318                     firstDay = DateTime.Now.ToString(year + "-0" + month + "-01");
    319                     lastDay = DateTime.Now.ToString(year + "-0" + month + "-31");
    320                     break;
    321                 case 9:
    322                     firstDay = DateTime.Now.ToString(year + "-0" + month + "-01");
    323                     lastDay = DateTime.Now.ToString(year + "-0" + month + "-30");
    324                     break;
    325                 case 10:
    326                     firstDay = DateTime.Now.ToString(year + "-" + month + "-01");
    327                     lastDay = DateTime.Now.ToString(year + "-" + month + "-31");
    328                     break;
    329                 case 11:
    330                     firstDay = DateTime.Now.ToString(year + "-" + month + "-01");
    331                     lastDay = DateTime.Now.ToString(year + "-" + month + "-30");
    332                     break;
    333                 default:
    334                     firstDay = DateTime.Now.ToString(year + "-" + month + "-01");
    335                     lastDay = DateTime.Now.ToString(year + "-" + month + "-31");
    336                     break;
    337             }
    338         }
    339         #endregion
    340 
    341         #region 返回当前日期的最后一秒时间
    342         /// <summary>
    343         /// 返回当前日期的23:59:59
    344         /// </summary>
    345         /// <param name="time"></param>
    346         public static DateTime ReturnDayEnd(DateTime time)
    347         {
    348             string dayTime = time.ToString("yyy-MM-dd");
    349             return dayTime.ToDateTime().AddDays(1).AddSeconds(-1);
    350         }
    351         #endregion
    352 
    353         #region 返回当前日期的第一秒时间
    354         /// <summary>
    355         /// 返回当前日期的00:00:00
    356         /// </summary>
    357         /// <param name="time"></param>
    358         public static DateTime ReturnDayStart(DateTime time)
    359         {
    360             string dayTime = time.ToString("yyy-MM-dd");
    361             return dayTime.ToDateTime();
    362         }
    363         #endregion
    DateTimeHelper
  • 相关阅读:
    PS转换图片——我教你
    通过Ajax——异步获取相关问题解答
    Spring的线程安全
    Spring MVC的工作机制
    Annotation的语法和使用
    Spring Bean的生命周期
    浅谈Spring
    Spring的事务管理
    行为型模式
    结构型模式
  • 原文地址:https://www.cnblogs.com/raniynight/p/9282615.html
Copyright © 2011-2022 走看看