比较2个时间并进行倒数

foxlinda123 2009-03-23 09:19:02
数据库里有个字段D2(数据类型为datetime),每次按下BUTTON时候先取出服务器当前时间(D1),然后与D2进行比较,如果
D2>D1,则算出2个时间之差,然后进行倒数,即显示还剩余“几时几分几秒”,一秒一秒的倒数,直到0

还有我要按的这个BUTTON所触发的事件不是写在aspx.cs文件中Click事件里,我用的是
Button2.Attributes["onclick"] = "javascript:Al("1");";即调用aspx画面上的javascript函数,如下:

function Al(str,a)
{
window.open('StartExam.aspx?perno='+str,'newwindow','status=1,scrollbars=1,resizable=1');
}
我现在是想在这函数Al里进行D1,D2的比较,不知道这办法是否行的通,如果可以又该怎么写?
...全文
97 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzxap 2009-03-23
  • 打赏
  • 举报
回复
/// <summary>
/// 已重载.计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值.
/// </summary>
/// <param name="DateTime1">第一个日期和时间</param>
/// <param name="DateTime2">第二个日期和时间</param>
/// <returns></returns>
private 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();
dateDiff=ts.Days.ToString()+"天"
+ts.Hours.ToString()+"小时"
+ts.Minutes.ToString()+"分钟"
+ts.Seconds.ToString()+"秒";
}
catch
{

}
return dateDiff;
}
/// <summary>
/// 已重载.计算一个时间与当前本地日期和时间的时间间隔,返回的是时间间隔的日期差的绝对值.
/// </summary>
/// <param name="DateTime1">一个日期和时间</param>
/// <returns></returns>
private string DateDiff(DateTime DateTime1)
{
return this.DateDiff(DateTime1,DateTime.Now);
}


注:
1.DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻。因此,你可以用DateTime值类型来描述任何在想象范围之内的时间。一个DateTime值代表了一个具体的时刻
2.TimeSpan值包含了许多属性与方法,用于访问或处理一个TimeSpan值
下面的列表涵盖了其中的一部分:
Add:与另一个TimeSpan值相加。
Days:返回用天数计算的TimeSpan值。
Duration:获取TimeSpan的绝对值。
Hours:返回用小时计算的TimeSpan值
Milliseconds:返回用毫秒计算的TimeSpan值。
Minutes:返回用分钟计算的TimeSpan值。
Negate:返回当前实例的相反数。
Seconds:返回用秒计算的TimeSpan值。
Subtract:从中减去另一个TimeSpan值。
Ticks:返回TimeSpan值的tick数。
TotalDays:返回TimeSpan值表示的天数。
TotalHours:返回TimeSpan值表示的小时数。
TotalMilliseconds:返回TimeSpan值表示的毫秒数。
TotalMinutes:返回TimeSpan值表示的分钟数。
TotalSeconds:返回TimeSpan值表示的秒数。

周公 2009-03-23
  • 打赏
  • 举报
回复
两个DateTime类型的差就是TimeSpan,TimeSpan就有几分几秒的。

DateTime d1=;
DateTime d2=;
TimeSpan ts=d2-d1;
ts.Hours;//时
ts.Minutes;分
ts.Seconds;//秒


不过我觉得这种效果适合在第一次运行的时候从数据库把数据读取出来,以后就在客户端用js方法来执行就行了。

wuyq11 2009-03-23
  • 打赏
  • 举报
回复
TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
TimeSpan ts = (TimeSpan)(ts2 - ts1);
if (Convert.ToInt32(ts.Seconds.ToString()) < 0)
dateDiff = "已经过期";
else
dateDiff = ts.Seconds.ToString();
再根据dateDiff 计数,每秒减一

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧