1. using System;
  2.  
  3. namespace DotNet.Utilities
  4. {
  5. /// <summary>
  6. /// 时间类
  7. /// 1、SecondToMinute(int Second) 把秒转换成分钟
  8. /// </summary>
  9. public class TimeHelper
  10. {
  11. /// <summary>
  12. /// 将时间格式化成 年月日 的形式,如果时间为null,返回当前系统时间
  13. /// </summary>
  14. /// <param name="dt">年月日分隔符</param>
  15. /// <param name="Separator"></param>
  16. /// <returns></returns>
  17. public string GetFormatDate(DateTime dt, char Separator)
  18. {
  19. if (dt != null && !dt.Equals(DBNull.Value))
  20. {
  21. string tem = string.Format("yyyy{0}MM{1}dd", Separator, Separator);
  22. return dt.ToString(tem);
  23. }
  24. else
  25. {
  26. return GetFormatDate(DateTime.Now, Separator);
  27. }
  28. }
  29. /// <summary>
  30. /// 将时间格式化成 时分秒 的形式,如果时间为null,返回当前系统时间
  31. /// </summary>
  32. /// <param name="dt"></param>
  33. /// <param name="Separator"></param>
  34. /// <returns></returns>
  35. public string GetFormatTime(DateTime dt, char Separator) {
  36. if (dt != null && !dt.Equals(DBNull.Value))
  37. {
  38. string tem = string.Format("hh{0}mm{1}ss", Separator, Separator);
  39. return dt.ToString(tem);
  40. }
  41. else
  42. {
  43. return GetFormatDate(DateTime.Now, Separator);
  44. }
  45. }
  46. /// <summary>
  47. /// 把秒转换成分钟
  48. /// </summary>
  49. /// <returns></returns>
  50. public static int SecondToMinute(int Second)
  51. {
  52. decimal mm = (decimal)((decimal)Second / (decimal));
  53. return Convert.ToInt32(Math.Ceiling(mm));
  54. }
  55.  
  56. #region 返回某年某月最后一天
  57. /// <summary>
  58. /// 返回某年某月最后一天
  59. /// </summary>
  60. /// <param name="year">年份</param>
  61. /// <param name="month">月份</param>
  62. /// <returns>日</returns>
  63. public static int GetMonthLastDate(int year, int month)
  64. {
  65. DateTime lastDay = new DateTime(year, month, new System.Globalization.GregorianCalendar().GetDaysInMonth(year, month));
  66. int Day = lastDay.Day;
  67. return Day;
  68. }
  69. #endregion
  70.  
  71. #region 返回时间差
  72. public static string DateDiff(DateTime DateTime1, DateTime DateTime2)
  73. {
  74. string dateDiff = null;
  75. try
  76. {
  77. //TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
  78. //TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
  79. //TimeSpan ts = ts1.Subtract(ts2).Duration();
  80. TimeSpan ts = DateTime2 - DateTime1;
  81. if (ts.Days >= )
  82. {
  83. dateDiff = DateTime1.Month.ToString() + "月" + DateTime1.Day.ToString() + "日";
  84. }
  85. else
  86. {
  87. if (ts.Hours > )
  88. {
  89. dateDiff = ts.Hours.ToString() + "小时前";
  90. }
  91. else
  92. {
  93. dateDiff = ts.Minutes.ToString() + "分钟前";
  94. }
  95. }
  96. }
  97. catch
  98. { }
  99. return dateDiff;
  100. }
  101. #endregion
  102.  
  103. #region 获得两个日期的间隔
  104. /// <summary>
  105. /// 获得两个日期的间隔
  106. /// </summary>
  107. /// <param name="DateTime1">日期一。</param>
  108. /// <param name="DateTime2">日期二。</param>
  109. /// <returns>日期间隔TimeSpan。</returns>
  110. public static TimeSpan DateDiff2(DateTime DateTime1, DateTime DateTime2)
  111. {
  112. TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
  113. TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
  114. TimeSpan ts = ts1.Subtract(ts2).Duration();
  115. return ts;
  116. }
  117. #endregion
  118.  
  119. #region 格式化日期时间
  120. /// <summary>
  121. /// 格式化日期时间
  122. /// </summary>
  123. /// <param name="dateTime1">日期时间</param>
  124. /// <param name="dateMode">显示模式</param>
  125. /// <returns>0-9种模式的日期</returns>
  126. public static string FormatDate(DateTime dateTime1, string dateMode)
  127. {
  128. switch (dateMode)
  129. {
  130. case "":
  131. return dateTime1.ToString("yyyy-MM-dd");
  132. case "":
  133. return dateTime1.ToString("yyyy-MM-dd HH:mm:ss");
  134. case "":
  135. return dateTime1.ToString("yyyy/MM/dd");
  136. case "":
  137. return dateTime1.ToString("yyyy年MM月dd日");
  138. case "":
  139. return dateTime1.ToString("MM-dd");
  140. case "":
  141. return dateTime1.ToString("MM/dd");
  142. case "":
  143. return dateTime1.ToString("MM月dd日");
  144. case "":
  145. return dateTime1.ToString("yyyy-MM");
  146. case "":
  147. return dateTime1.ToString("yyyy/MM");
  148. case "":
  149. return dateTime1.ToString("yyyy年MM月");
  150. default:
  151. return dateTime1.ToString();
  152. }
  153. }
  154. #endregion
  155.  
  156. #region 得到随机日期
  157. /// <summary>
  158. /// 得到随机日期
  159. /// </summary>
  160. /// <param name="time1">起始日期</param>
  161. /// <param name="time2">结束日期</param>
  162. /// <returns>间隔日期之间的 随机日期</returns>
  163. public static DateTime GetRandomTime(DateTime time1, DateTime time2)
  164. {
  165. Random random = new Random();
  166. DateTime minTime = new DateTime();
  167. DateTime maxTime = new DateTime();
  168.  
  169. System.TimeSpan ts = new System.TimeSpan(time1.Ticks - time2.Ticks);
  170.  
  171. // 获取两个时间相隔的秒数
  172. double dTotalSecontds = ts.TotalSeconds;
  173. int iTotalSecontds = ;
  174.  
  175. if (dTotalSecontds > System.Int32.MaxValue)
  176. {
  177. iTotalSecontds = System.Int32.MaxValue;
  178. }
  179. else if (dTotalSecontds < System.Int32.MinValue)
  180. {
  181. iTotalSecontds = System.Int32.MinValue;
  182. }
  183. else
  184. {
  185. iTotalSecontds = (int)dTotalSecontds;
  186. }
  187.  
  188. if (iTotalSecontds > )
  189. {
  190. minTime = time2;
  191. maxTime = time1;
  192. }
  193. else if (iTotalSecontds < )
  194. {
  195. minTime = time1;
  196. maxTime = time2;
  197. }
  198. else
  199. {
  200. return time1;
  201. }
  202.  
  203. int maxValue = iTotalSecontds;
  204.  
  205. if (iTotalSecontds <= System.Int32.MinValue)
  206. maxValue = System.Int32.MinValue + ;
  207.  
  208. int i = random.Next(System.Math.Abs(maxValue));
  209.  
  210. return minTime.AddSeconds(i);
  211. }
  212. #endregion
  213. }
  214. }

TimeHelper

C# 时间操作类的更多相关文章

  1. JAVA常用时间操作类

    http://www.360doc.com/content/10/1210/17/2703996_76839640.shtml    在程序里面要获取当前的开始时间和结束时间,以及当前天所在的周的开始 ...

  2. java 常用时间操作类,计算到期提醒,N年后,N月后的日期

    package com.zjjerp.tool; import java.text.ParseException; import java.text.ParsePosition; import jav ...

  3. [时间操作] C#DateFormat时间帮助类 (转载)

    点击下载 DateFormat.rar 主要功能如下 返回每月的第一天和最后一天 看下面代码吧 /// <summary> /// 类说明:时间操作类 /// 编 码 人:苏飞 /// 联 ...

  4. Apache Commons Lang之日期时间工具类

    码农不识Apache,码尽一生也枉然. FastDateFormat FastDateFormat是一个快速且线程安全的时间操作类,它完全可以替代SimpleDateFromat.因为是线程安全的,所 ...

  5. Java Calendar 类的时间操作

    Java Calendar 类的时间操作 标签: javaCalendar时间Date 2013-07-30 17:53 140401人阅读 评论(7) 收藏 举报 分类: 所有(165) Java ...

  6. 使用日期操作类(Calendar)获得几秒、几分钟、几小时之前的时间

    public String dealDate(String case_time){ // 日期操作类 Calendar calendar = Calendar.getInstance(); // 当前 ...

  7. Java8 时间日期类操作

    Java8 时间日期类操作 Java8的时间类有两个重要的特性 线程安全 不可变类,返回的都是新的对象 显然,该特性解决了原来java.util.Date类与SimpleDateFormat线程不安全 ...

  8. 【知识必备】ezSQL,最好用的数据库操作类,让php操作sql更简单~

    最近用php做了点小东东,用上了ezSQL,感觉真的很ez,所以拿来跟大家分享一下~ ezSQL是一个非常好用的PHP数据库操作类.著名的开源博客WordPress的数据库操作就使用了ezSQL的My ...

  9. Util应用程序框架公共操作类(二):数据类型转换公共操作类(源码篇)

    上一篇介绍了数据类型转换的一些情况,可以看出,如果不进行封装,有可能导致比较混乱的代码.本文通过TDD方式把数据类型转换公共操作类开发出来,并提供源码下载. 我们在 应用程序框架实战十一:创建VS解决 ...

随机推荐

  1. GO学习笔记 - 数据类型推导

    官方教程:https://tour.go-zh.org/basics/14 在定义一个变量却并不显式指定其类型时(使用 := 语法或者 var = 表达式语法), 变量的类型由(等号)右侧的值推导得出 ...

  2. Java按位取反运算符“~”的工作原理

    说明:本文参考了文章<Java按位取反运算符“~”>,链接:https://blog.csdn.net/smilecall/article/details/4245447 补充:位运算符( ...

  3. 【Oracle 12c】最新CUUG OCP-071考试题库(54题)

    54.(12-15) choose the best answer: View the Exhibit and examine the structure of the ORDER_ITEMS and ...

  4. [XHR]——重新认识 XMLHttpRequest

    细说XMLHttpRequest如何使用 先来看一段使用XMLHttpRequest发送Ajax请求的简单示例代码. function sendAjax() { //构造表单数据 var formDa ...

  5. Java中类变量和实例变量的初始化

    1. 类变量和实例变量 类变量即类成员变量中的静态变量,它们可以通过类名来直接访问. 实例变量是类成员变量中的非静态变量,只有在实例化对象之后通过对象来访问. 2. 空间分配的时间不同 类变量是在类加 ...

  6. 基于datax的数据同步平台

    一.需求 由于公司各个部门对业务数据的需求,比如进行数据分析.报表展示等等,且公司没有相应的系统.数据仓库满足这些需求,最原始的办法就是把数据提取出来生成excel表发给各个部门,这个功能已经由脚本转 ...

  7. IntelliJ IDEA中可以用Tab键跳出括号和引号吗?

    在 Settings->Editor->General->Smart Keys 中勾选 Jump outside closing bracket/quote with Tab 即可.

  8. Hibernate 工具类

    1.HibernateConfigUtil.java(HIbernate配置工具类) import org.hibernate.Session; import org.hibernate.Sessio ...

  9. windows phpinfo上不能找到memcache扩展 php版本5.6

    我的memcache用的我是memcached-win64-1.4.4-14.zip这个版本memcache扩展库下载地址:http://windows.php.net/downloads/pecl/ ...

  10. 洛谷 P1273 有线电视网(树形背包)

    洛谷 P1273 有线电视网(树形背包) 干透一道题 题面:洛谷 P1273 本质就是个背包.这道题dp有点奇怪,最终答案并不是dp值,而是最后遍历寻找那个合法且最优的\(i\)作为答案.dp值存的是 ...