C#时间操作类分享
发布时间 - 2026-01-11 02:02:01 点击率:次本文实例为大家分享了C#时间操作类的具体代码,供大家参考,具体内容如下
using System;
namespace DotNet.Utilities
{
/// <summary>
/// 时间类
/// 1、SecondToMinute(int Second) 把秒转换成分钟
/// </summary>
public class TimeHelper
{
/// <summary>
/// 将时间格式化成 年月日 的形式,如果时间为null,返回当前系统时间
/// </summary>
/// <param name="dt">年月日分隔符</param>
/// <param name="Separator"></param>
/// <returns></returns>
public string GetFormatDate(DateTime dt, char Separator)
{
if (dt != null && !dt.Equals(DBNull.Value))
{
string tem = string.Format("yyyy{0}MM{1}dd", Separator, Separator);
return dt.ToString(tem);
}
else
{
return GetFormatDate(DateTime.Now, Separator);
}
}
/// <summary>
/// 将时间格式化成 时分秒 的形式,如果时间为null,返回当前系统时间
/// </summary>
/// <param name="dt"></param>
/// <param name="Separator"></param>
/// <returns></returns>
public string GetFormatTime(DateTime dt, char Separator) {
if (dt != null && !dt.Equals(DBNull.Value))
{
string tem = string.Format("hh{0}mm{1}ss", Separator, Separator);
return dt.ToString(tem);
}
else
{
return GetFormatDate(DateTime.Now, Separator);
}
}
/// <summary>
/// 把秒转换成分钟
/// </summary>
/// <returns></returns>
public static int SecondToMinute(int Second)
{
decimal mm = (decimal)((decimal)Second / (decimal)60);
return Convert.ToInt32(Math.Ceiling(mm));
}
#region 返回某年某月最后一天
/// <summary>
/// 返回某年某月最后一天
/// </summary>
/// <param name="year">年份</param>
/// <param name="month">月份</param>
/// <returns>日</returns>
public static int GetMonthLastDate(int year, int month)
{
DateTime lastDay = new DateTime(year, month, new System.Globalization.GregorianCalendar().GetDaysInMonth(year, month));
int Day = lastDay.Day;
return Day;
}
#endregion
#region 返回时间差
public static string DateDiff(DateTime DateTime1, DateTime DateTime2)
{
string dateDiff = null;
try
{
//TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
//TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
//TimeSpan ts = ts1.Subtract(ts2).Duration();
TimeSpan ts = DateTime2 - DateTime1;
if (ts.Days >= 1)
{
dateDiff = DateTime1.Month.ToString() + "月" + DateTime1.Day.ToString() + "日";
}
else
{
if (ts.Hours > 1)
{
dateDiff = ts.Hours.ToString() + "小时前";
}
else
{
dateDiff = ts.Minutes.ToString() + "分钟前";
}
}
}
catch
{ }
return dateDiff;
}
#endregion
#region 获得两个日期的间隔
/// <summary>
/// 获得两个日期的间隔
/// </summary>
/// <param name="DateTime1">日期一。</param>
/// <param name="DateTime2">日期二。</param>
/// <returns>日期间隔TimeSpan。</returns>
public static TimeSpan DateDiff2(DateTime DateTime1, DateTime DateTime2)
{
TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
return ts;
}
#endregion
#region 格式化日期时间
/// <summary>
/// 格式化日期时间
/// </summary>
/// <param name="dateTime1">日期时间</param>
/// <param name="dateMode">显示模式</param>
/// <returns>0-9种模式的日期</returns>
public static string FormatDate(DateTime dateTime1, string dateMode)
{
switch (dateMode)
{
case "0":
return dateTime1.ToString("yyyy-MM-dd");
case "1":
return dateTime1.ToString("yyyy-MM-dd HH:mm:ss");
case "2":
return dateTime1.ToString("yyyy/MM/dd");
case "3":
return dateTime1.ToString("yyyy年MM月dd日");
case "4":
return dateTime1.ToString("MM-dd");
case "5":
return dateTime1.ToString("MM/dd");
case "6":
return dateTime1.ToString("MM月dd日");
case "7":
return dateTime1.ToString("yyyy-MM");
case "8":
return dateTime1.ToString("yyyy/MM");
case "9":
return dateTime1.ToString("yyyy年MM月");
default:
return dateTime1.ToString();
}
}
#endregion
#region 得到随机日期
/// <summary>
/// 得到随机日期
/// </summary>
/// <param name="time1">起始日期</param>
/// <param name="time2">结束日期</param>
/// <returns>间隔日期之间的 随机日期</returns>
public static DateTime GetRandomTime(DateTime time1, DateTime time2)
{
Random random = new Random();
DateTime minTime = new DateTime();
DateTime maxTime = new DateTime();
System.TimeSpan ts = new System.TimeSpan(time1.Ticks - time2.Ticks);
// 获取两个时间相隔的秒数
double dTotalSecontds = ts.TotalSeconds;
int iTotalSecontds = 0;
if (dTotalSecontds > System.Int32.MaxValue)
{
iTotalSecontds = System.Int32.MaxValue;
}
else if (dTotalSecontds < System.Int32.MinValue)
{
iTotalSecontds = System.Int32.MinValue;
}
else
{
iTotalSecontds = (int)dTotalSecontds;
}
if (iTotalSecontds > 0)
{
minTime = time2;
maxTime = time1;
}
else if (iTotalSecontds < 0)
{
minTime = time1;
maxTime = time2;
}
else
{
return time1;
}
int maxValue = iTotalSecontds;
if (iTotalSecontds <= System.Int32.MinValue)
maxValue = System.Int32.MinValue + 1;
int i = random.Next(System.Math.Abs(maxValue));
return minTime.AddSeconds(i);
}
#endregion
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# C#
# 时间操作类
# C# string格式的日期时间字符串转为DateTime类型的方法
# asp.net(C#)实现功能强大的时间日期处理类完整实例
# 深入Unix时间戳与C# DateTime时间类型互换的详解
# 时间为
# 转换成
# 某年某月
# 大家分享
# 具体内容
# 大家多多
# 分隔符
# Format
# tem
# yyyy
# MM
# dd
# DBNull
# DateTime
# GetFormatDate
# char
# Equals
# amp
# decimal
# static
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何正确下载安装西数主机建站助手?
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
在线制作视频的网站有哪些,电脑如何制作视频短片?
Laravel如何处理表单验证?(Requests代码示例)
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
浅析上传头像示例及其注意事项
Internet Explorer官网直接进入 IE浏览器在线体验版网址
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
高防服务器:AI智能防御DDoS攻击与数据安全保障
MySQL查询结果复制到新表的方法(更新、插入)
如何基于云服务器快速搭建网站及云盘系统?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
如何做网站制作流程,*游戏网站怎么搭建?
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
如何获取免费开源的自助建站系统源码?
如何快速完成中国万网建站详细流程?
如何用美橙互联一键搭建多站合一网站?
网站建设要注意的标准 促进网站用户好感度!
Python文件异常处理策略_健壮性说明【指导】
香港服务器租用费用高吗?如何避免常见误区?
如何快速搭建高效WAP手机网站吸引移动用户?
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
如何将凡科建站内容保存为本地文件?
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
高端建站如何打造兼具美学与转化的品牌官网?
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
如何用AWS免费套餐快速搭建高效网站?
高防服务器租用如何选择配置与防御等级?
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
Java遍历集合的三种方式
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
手机软键盘弹出时影响布局的解决方法
打造顶配客厅影院,这份100寸电视推荐名单请查收
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
php485函数参数是什么意思_php485各参数详细说明【介绍】
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
如何为不同团队 ID 动态生成多个“认领值班”按钮
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
如何用y主机助手快速搭建网站?
如何挑选高效建站主机与优质域名?
如何在云主机快速搭建网站站点?
敲碗10年!Mac系列传将迎来「触控与联网」双革新
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具

