我们经常都需要知道一段代码的执行速度如何,因此,编写获取时间差函数就显得尤为重要,在aspx中我们也可以实现这样的函数,具体代码如下所示
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace ST.page
{
public partial class time : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string time1 = "2000-1-1 8:10:00";
string time2 = "2001-1-1 10:30:00";
DateTime t1 = Convert.ToDateTime(time1);
DateTime t2 = Convert.ToDateTime(time2);
Response.Write(DateDiff(t2, t1));
}
private string DateDiff(DateTime start, DateTime end)
{
string dateDiff = null;
TimeSpan ts1 = new TimeSpan(start.Ticks);
TimeSpan ts2 = new TimeSpan(end.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
dateDiff = ts.Days.ToString() + "天" + ts.Hours.ToString()+"小时"+ts.Minutes.ToString() + "分钟" + ts.Seconds.ToString() + "秒" + ts.Milliseconds.ToString() + "毫秒";
return dateDiff;
}
}
}
此处只能够获取到两个时间点的差值,测试结果如下
从测试结果可以看出,该代码还具有处理闰年问题
经过以上代码,本人突发奇想,能不能在网页上一直刷新当前时间,因此,写出了以下代码
while (true)
{
Response.Write(DateTime.Now.ToString());
}
结果出现了以下错误
从错误中,我们可以大概知道,由于.cs实在服务器上执行的,但是,我们在服务器上执行时却不能够返回,当然浏览器不会有输出了,内存不足有可能是由于系统会将输出的字符串添加拼接到一个buffer里面,buffer大小受限,因此,在某个时间会出现内存不足的显现。我们将代码修改为如下格式
int i = 5;
for (i = 0; i < 5; i++)
{
Response.Write(DateTime.Now.ToString());
}
执行代码,我们可以得到以下结果
可以看到能够正确执行输出