C# 中实现随机时间的获取

摘要:
原理其实非常简单,取出两个时间差的秒数,再在0到该秒数之间随机获取一个整数,将其做为秒添加到较小的时间上,可以说实现上并没什么技术难点,可以在数据类型的边界条件上却需要格外的注意,比如将大于System.Int32.MaxValue或小于System.Int32.MinValue的值转成int时,如果直接在变量前加上类型名转换((int)d),不会有有异常产生,但得到的值却是System.Int3

原理其实非常简单,取出两个时间差的秒数,再在0到该秒数之间随机获取一个整数,将其做为秒添加到较小的时间上,可以说实现上并没什么技术难点,可以在数据类型的边界条件上却需要格外的注意,比如将大于 System.Int32.MaxValue 或小于 System.Int32.MinValue 的值转成 int 时,如果直接在变量前加上类型名转换((int)d),不会有有异常产生,但得到的值却是 System.Int32.MinValue,还有就是对于Math.Abs 方法,当参数 value 等于 MinValue 将会引发 System.OverflowException 异常。
代码如下:
C# 中实现随机时间的获取第1张C# 中实现随机时间的获取第2张
C# 中实现随机时间的获取第3张
C# 中实现随机时间的获取第3张
usingSystem;
C# 中实现随机时间的获取第3张
C# 中实现随机时间的获取第3张
namespaceYyw
C# 中实现随机时间的获取第7张C# 中实现随机时间的获取第8张
C# 中实现随机时间的获取第9张{
C# 中实现随机时间的获取第10张
publicclassDateTimeHelper
C# 中实现随机时间的获取第11张C# 中实现随机时间的获取第12张
C# 中实现随机时间的获取第9张{
C# 中实现随机时间的获取第11张C# 中实现随机时间的获取第12张
/**////<summary>
C# 中实现随机时间的获取第10张
///获取随机时间
C# 中实现随机时间的获取第10张
///<remarks>
C# 中实现随机时间的获取第10张
///由于Random以当前系统时间做为种值,所以当快速运行多次该方法所得到的结果可能相同,
C# 中实现随机时间的获取第10张
///这时,你应该在外部初始化Random实例并调用GetRandomTime(DateTimetime1,DateTimetime2,Randomrandom)
C# 中实现随机时间的获取第10张
///</remarks>
C# 中实现随机时间的获取第10张
///</summary>
C# 中实现随机时间的获取第10张
///<paramname="time1"></param>
C# 中实现随机时间的获取第10张
///<paramname="time2"></param>
C# 中实现随机时间的获取第24张
///<returns></returns>

C# 中实现随机时间的获取第10张publicstaticDateTimeGetRandomTime(DateTimetime1,DateTimetime2)
C# 中实现随机时间的获取第11张C# 中实现随机时间的获取第12张
C# 中实现随机时间的获取第9张{
C# 中实现随机时间的获取第10张Randomrandom
=newRandom();
C# 中实现随机时间的获取第10张
returnGetRandomTime(time1,time2,random);
C# 中实现随机时间的获取第24张}

C# 中实现随机时间的获取第10张
C# 中实现随机时间的获取第11张C# 中实现随机时间的获取第12张
/**////<summary>
C# 中实现随机时间的获取第10张
///获取随机时间
C# 中实现随机时间的获取第10张
///</summary>
C# 中实现随机时间的获取第10张
///<paramname="time1"></param>
C# 中实现随机时间的获取第10张
///<paramname="time2"></param>
C# 中实现随机时间的获取第10张
///<paramname="random"></param>
C# 中实现随机时间的获取第24张
///<returns></returns>

C# 中实现随机时间的获取第10张publicstaticDateTimeGetRandomTime(DateTimetime1,DateTimetime2,Randomrandom)
C# 中实现随机时间的获取第11张C# 中实现随机时间的获取第12张
C# 中实现随机时间的获取第9张{
C# 中实现随机时间的获取第10张DateTimeminTime
=newDateTime();
C# 中实现随机时间的获取第10张DateTimemaxTime
=newDateTime();
C# 中实现随机时间的获取第10张
C# 中实现随机时间的获取第10张System.TimeSpants
=newSystem.TimeSpan(time1.Ticks-time2.Ticks);
C# 中实现随机时间的获取第10张
C# 中实现随机时间的获取第10张
//获取两个时间相隔的秒数
C# 中实现随机时间的获取第10张
doubledTotalSecontds=ts.TotalSeconds;
C# 中实现随机时间的获取第10张
intiTotalSecontds=0;
C# 中实现随机时间的获取第10张
C# 中实现随机时间的获取第10张
if(dTotalSecontds>System.Int32.MaxValue)
C# 中实现随机时间的获取第11张C# 中实现随机时间的获取第12张
C# 中实现随机时间的获取第9张{
C# 中实现随机时间的获取第10张iTotalSecontds
=System.Int32.MaxValue;
C# 中实现随机时间的获取第24张}

C# 中实现随机时间的获取第10张
elseif(dTotalSecontds<System.Int32.MinValue)
C# 中实现随机时间的获取第11张C# 中实现随机时间的获取第12张
C# 中实现随机时间的获取第9张{
C# 中实现随机时间的获取第10张iTotalSecontds
=System.Int32.MinValue;
C# 中实现随机时间的获取第24张}

C# 中实现随机时间的获取第10张
else
C# 中实现随机时间的获取第11张C# 中实现随机时间的获取第12张
C# 中实现随机时间的获取第9张{
C# 中实现随机时间的获取第10张iTotalSecontds
=(int)dTotalSecontds;
C# 中实现随机时间的获取第24张}

C# 中实现随机时间的获取第10张
C# 中实现随机时间的获取第10张
C# 中实现随机时间的获取第10张
if(iTotalSecontds>0)
C# 中实现随机时间的获取第11张C# 中实现随机时间的获取第12张
C# 中实现随机时间的获取第9张{
C# 中实现随机时间的获取第10张minTime
=time2;
C# 中实现随机时间的获取第10张maxTime
=time1;
C# 中实现随机时间的获取第24张}

C# 中实现随机时间的获取第10张
elseif(iTotalSecontds<0)
C# 中实现随机时间的获取第11张C# 中实现随机时间的获取第12张
C# 中实现随机时间的获取第9张{
C# 中实现随机时间的获取第10张minTime
=time1;
C# 中实现随机时间的获取第10张maxTime
=time2;
C# 中实现随机时间的获取第24张}

C# 中实现随机时间的获取第10张
else
C# 中实现随机时间的获取第11张C# 中实现随机时间的获取第12张
C# 中实现随机时间的获取第9张{
C# 中实现随机时间的获取第10张
returntime1;
C# 中实现随机时间的获取第24张}

C# 中实现随机时间的获取第10张
C# 中实现随机时间的获取第10张
intmaxValue=iTotalSecontds;
C# 中实现随机时间的获取第10张
C# 中实现随机时间的获取第10张
if(iTotalSecontds<=System.Int32.MinValue)
C# 中实现随机时间的获取第10张maxValue
=System.Int32.MinValue+1;
C# 中实现随机时间的获取第10张
C# 中实现随机时间的获取第10张
inti=random.Next(System.Math.Abs(maxValue));
C# 中实现随机时间的获取第10张
C# 中实现随机时间的获取第10张
returnminTime.AddSeconds(i);
C# 中实现随机时间的获取第24张}

C# 中实现随机时间的获取第24张}

C# 中实现随机时间的获取第105张}

测试代码:
C# 中实现随机时间的获取第106张C# 中实现随机时间的获取第107张
C# 中实现随机时间的获取第3张usingSystem;
C# 中实现随机时间的获取第3张
usingNUnit.Framework;
C# 中实现随机时间的获取第3张
C# 中实现随机时间的获取第3张
namespaceYyw
C# 中实现随机时间的获取第7张C# 中实现随机时间的获取第8张
C# 中实现随机时间的获取第9张{
C# 中实现随机时间的获取第10张[TestFixture]
C# 中实现随机时间的获取第10张
publicclassDateTimeHelperFixture
C# 中实现随机时间的获取第11张C# 中实现随机时间的获取第12张
C# 中实现随机时间的获取第9张{
C# 中实现随机时间的获取第11张C# 中实现随机时间的获取第12张
/**////<summary>
C# 中实现随机时间的获取第10张
///边界测试
C# 中实现随机时间的获取第24张
///</summary>

C# 中实现随机时间的获取第10张[Test]
C# 中实现随机时间的获取第10张
publicvoidTestGetRandomTime()
C# 中实现随机时间的获取第11张C# 中实现随机时间的获取第12张
C# 中实现随机时间的获取第9张{
C# 中实现随机时间的获取第10张DateTimeminTime
=DateTime.MinValue;
C# 中实现随机时间的获取第10张DateTimemaxTime
=DateTime.MaxValue;
C# 中实现随机时间的获取第10张Randomrandom
=newRandom();
C# 中实现随机时间的获取第10张
C# 中实现随机时间的获取第10张
for(inti=0;i<10000;i++)
C# 中实现随机时间的获取第11张C# 中实现随机时间的获取第12张
C# 中实现随机时间的获取第9张{
C# 中实现随机时间的获取第10张DateTimerandomTime
=DateTimeHelper.GetRandomTime(maxTime,minTime,random);
C# 中实现随机时间的获取第10张CheckResult(minTime,maxTime,randomTime);
C# 中实现随机时间的获取第24张}

C# 中实现随机时间的获取第10张
C# 中实现随机时间的获取第10张
for(inti=0;i<10000;i++)
C# 中实现随机时间的获取第11张C# 中实现随机时间的获取第12张
C# 中实现随机时间的获取第9张{
C# 中实现随机时间的获取第10张DateTimerandomTime
=DateTimeHelper.GetRandomTime(minTime,maxTime,random);
C# 中实现随机时间的获取第10张CheckResult(minTime,maxTime,randomTime);
C# 中实现随机时间的获取第24张}

C# 中实现随机时间的获取第24张}

C# 中实现随机时间的获取第10张
C# 中实现随机时间的获取第10张
privatevoidCheckResult(DateTimeminTime,DateTimemaxTime,DateTimerandomTime)
C# 中实现随机时间的获取第11张C# 中实现随机时间的获取第12张
C# 中实现随机时间的获取第9张{
C# 中实现随机时间的获取第10张System.TimeSpants1
=newSystem.TimeSpan(randomTime.Ticks-minTime.Ticks);
C# 中实现随机时间的获取第10张System.TimeSpants2
=newSystem.TimeSpan(randomTime.Ticks-maxTime.Ticks);
C# 中实现随机时间的获取第10张Assert.IsTrue(ts1.Seconds
>=0&&ts2.Seconds<=0);
C# 中实现随机时间的获取第24张}

C# 中实现随机时间的获取第24张}

C# 中实现随机时间的获取第105张}

免责声明:文章转载自《C# 中实现随机时间的获取》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇wpf 逻辑树与可视化树postgresql 下的三表连查下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

机器学习sklearn(四十二):算法实例(十一)分类(五)RandomForestClassifier(二)实例:随机森林在乳腺癌数据上的调参

案例中,往往使用真实数据,为什么我们要使用sklearn自带的数据呢?因为真实数据在随机森林下的调参过程,往往非常缓慢。真实数据量大,维度高,在使用随机森林之前需要一系列的处理,因此不太适合用来做直播中的案例演示。在本章,我为大家准备了kaggle上下载的辨别手写数字的数据,有4W多条记录700多个左右的特征,随机森林在这个辨别手写数字的数据上有非常好的表...

集成算法 ensemble method

introduction When you want to purchase a new car, will you walk up to the first car shop and purchase one based on the advice of the dealer? It’s highly unlikely. You would likely...

在javaweb的项目当中实现随机数字的生成

首先,需要在javaweb的项目当中新建一个Servlet文件,然后再web.xml中配置一下: 这样运行的时候就可以通过“http://localhost:8080/Response/Response02”的地址访问到我们的Servlet。 开始代码的编写吧: 首先,我们需要写一个生成随即数字的方法,我们这次实现随即生成七位数的数字: priv...

C语言实现单链表面试题(进阶篇)

首先给出单链表的结构,下面实现具体代码 typedef int DataType; typedef struct Node { DataType data; struct Node*next; }Node,*pNode,*pList;//结点 typedef struct ComplexNode { DataType D;...

python画树

用python画简单的树 代码如下: importturtle as T importrandom importtime #画樱花的躯干(60,t) defTree(branch, t): time.sleep(0.0005) if branch > 3: if 8 <= branch <= 12:...

关于登录随机验证码的实现

一、验证码相关知识 Python生成随机验证码,需要使用PIL模块. 安装: pip3 install pillow 基本使用 1. 创建图片 from PIL import Image img = Image.new(mode='RGB', size=(120, 30), color=(255, 255, 255)) # 在图片查看器中打开 # i...