当前位置: 首页 > news >正文

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 DateGiff2(DateTime DateTime1,DateTime DateTime2)
{
  TimeSpan ts1=new TimeSpan(DateTime1.Ticks);
TimSpan 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 dTotalSecond=ts.TotalSeconds;
int iTotalSecond=0;
if(dTotalSeconds>System.Int32.MaxValue)
{
 iTotalSeconds=System.Int32.MaxValue;
}
else if(dTotalSeconds<System.Int32.MinValue)
{
iTotalSeconds=System.Int32.MinValue;
}
else
{
iTotalSeconds=(int)dTotalSeconds;
}
if(iTotalSeconds>0)
{
 minTime=time2;
maxTime=time1;
}
else if(iTotalSeconds<0)
{
minTime=time1;
maxTime=time2;
}
else{
return time1;
}
int maxValue=iTotalSeconds;
if(iTotalSeconds <=System.Int32.MinValue)
maxValue=System.Int32.MinValue+1;
int i=random.Next(System.Math.Abs(maxValue));
return minTime.AddSeconds(i);
}
#endregion
}
}

 

转载于:https://www.cnblogs.com/zzp0320/p/7160414.html

相关文章:

  • BZOJ 3437 小P的牧场(斜率优化DP)
  • Python+selenium网页模拟操作-自动化
  • oracle模糊查询(二)
  • java Web面试题
  • oracle模糊查询:全文索引方式(三)
  • oracle模糊查询:分区局部全文索引方式(四)
  • 动态链接及静态链接
  • BTrace实战
  • windows下安装配置hadoop
  • JavaScript(jQuery)实现打印英文格式日期
  • eclipse运行hadoop wordcount example
  • linux6.5环境下安装python
  • protobuf-2.5.0的下载与安装
  • ibatis入门
  • 将DataTable转换为ListT对象遇到问题:类型“System.Int64”的对象无法转换为类型“System.Int32”。...
  • [译] React v16.8: 含有Hooks的版本
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • C# 免费离线人脸识别 2.0 Demo
  • Consul Config 使用Git做版本控制的实现
  • Debian下无root权限使用Python访问Oracle
  • javascript面向对象之创建对象
  • JavaScript异步流程控制的前世今生
  • JavaScript中的对象个人分享
  • Promise面试题,控制异步流程
  • python大佬养成计划----difflib模块
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • 从零开始在ubuntu上搭建node开发环境
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 源码安装memcached和php memcache扩展
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​决定德拉瓦州地区版图的关键历史事件
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • (007)XHTML文档之标题——h1~h6
  • (C语言)球球大作战
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (学习日记)2024.01.09
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)Sql Server 保留几位小数的两种做法
  • (转载)Linux 多线程条件变量同步
  • ../depcomp: line 571: exec: g++: not found
  • .“空心村”成因分析及解决对策122344
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .Net Core 中间件验签
  • .net 获取url的方法
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .net经典笔试题
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • /etc/fstab 只读无法修改的解决办法
  • @DataRedisTest测试redis从未如此丝滑