仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 720|回复: 7
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之C#中完成随机工夫的猎取

[复制链接]
透明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:45:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
据说很厉害,甚至可以把C#也干掉^_^,不过也很复杂,本来C++已经够复杂的。有人甚至还提出把这个东东引进标准,我觉得基本上不可能的。随机道理实在十分复杂,掏出两个工夫差的秒数,再在0到该秒数之间随机猎取一个整数,将其做为秒增加到较小的工夫上,能够说完成上并没甚么手艺难点,能够在数据范例的界限前提上却必要分外的注重,好比将年夜于System.Int32.MaxValue或小于System.Int32.MinValue的值转成int时,假如间接在变量前加上范例名转换((int)d),不会有有非常发生,但失掉的值倒是System.Int32.MinValue,另有就是关于Math.Abs办法,当参数value即是MinValue将会激发System.OverflowException非常。
代码以下:

usingSystem;
namespaceYyw
{
publicclassDateTimeHelper
{
/**////<summary>
///猎取随机工夫
///<remarks>
///因为Random以以后体系工夫做为种值,以是当疾速运转屡次该办法所失掉的了局大概不异,
///这时候,你应当在内部初始化Random实例并挪用GetRandomTime(DateTimetime1,DateTimetime2,Randomrandom)
///</remarks>
///</summary>
///<paramname="time1"></param>
///<paramname="time2"></param>
///<returns></returns>
publicstaticDateTimeGetRandomTime(DateTimetime1,DateTimetime2)
{
Randomrandom=newRandom();
returnGetRandomTime(time1,time2,random);
}
/**////<summary>
///猎取随机工夫
///</summary>
///<paramname="time1"></param>
///<paramname="time2"></param>
///<paramname="random"></param>
///<returns></returns>
publicstaticDateTimeGetRandomTime(DateTimetime1,DateTimetime2,Randomrandom)
{
DateTimeminTime=newDateTime();
DateTimemaxTime=newDateTime();
System.TimeSpants=newSystem.TimeSpan(time1.Ticks-time2.Ticks);
//猎取两个工夫相隔的秒数
doubledTotalSecontds=ts.TotalSeconds;
intiTotalSecontds=0;
if(dTotalSecontds>System.Int32.MaxValue)
{
iTotalSecontds=System.Int32.MaxValue;
}
elseif(dTotalSecontds<System.Int32.MinValue)
{
iTotalSecontds=System.Int32.MinValue;
}
else
{
iTotalSecontds=(int)dTotalSecontds;
}

if(iTotalSecontds>0)
{
minTime=time2;
maxTime=time1;
}
elseif(iTotalSecontds<0)
{
minTime=time1;
maxTime=time2;
}
else
{
returntime1;
}
intmaxValue=iTotalSecontds;
if(iTotalSecontds<=System.Int32.MinValue)
maxValue=System.Int32.MinValue+1;
inti=random.Next(System.Math.Abs(maxValue));
returnminTime.AddSeconds(i);
}
}
}
测试代码:
usingSystem;
usingNUnit.Framework;
namespaceYyw
{
[TestFixture]
publicclassDateTimeHelperFixture
{
/**////<summary>
///界限测试
///</summary>
[Test]
publicvoidTestGetRandomTime()
{
DateTimeminTime=DateTime.MinValue;
DateTimemaxTime=DateTime.MaxValue;
Randomrandom=newRandom();
for(inti=0;i<10000;i++)
{
DateTimerandomTime=DateTimeHelper.GetRandomTime(maxTime,minTime,random);
CheckResult(minTime,maxTime,randomTime);
}
for(inti=0;i<10000;i++)
{
DateTimerandomTime=DateTimeHelper.GetRandomTime(minTime,maxTime,random);
CheckResult(minTime,maxTime,randomTime);
}
}
privatevoidCheckResult(DateTimeminTime,DateTimemaxTime,DateTimerandomTime)
{
System.TimeSpants1=newSystem.TimeSpan(randomTime.Ticks-minTime.Ticks);
System.TimeSpants2=newSystem.TimeSpan(randomTime.Ticks-maxTime.Ticks);
Assert.IsTrue(ts1.Seconds>=0&&ts2.Seconds<=0);
}
}
}
兄弟们,想来你们都看过了昨天的比赛了。我现在的痛苦状跟当时应该差不多。希望本版.net老师不吝赐教,为小弟这一批迷途的羊羔指一条阳光之道!您也知道:学习技术如果只有一个人摸索,那是一件多么痛苦的事情!还有,如果万辛能得名师或长者指点,那又是多么一件幸福和快乐的事情!
简单生活 该用户已被删除
沙发
发表于 2015-1-19 23:01:57 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
再见西城 该用户已被删除
板凳
发表于 2015-1-28 08:15:53 | 只看该作者
ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。
若相依 该用户已被删除
地板
发表于 2015-2-5 14:24:27 | 只看该作者
众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
不帅 该用户已被删除
5#
发表于 2015-3-2 23:01:25 | 只看该作者
那么,ASP.Net有哪些改进呢?
兰色精灵 该用户已被删除
6#
发表于 2015-3-11 07:18:43 | 只看该作者
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
透明 该用户已被删除
7#
 楼主| 发表于 2015-3-17 23:09:12 | 只看该作者
JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。
小妖女 该用户已被删除
8#
发表于 2015-3-25 06:20:18 | 只看该作者
asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-5 05:51

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表