如何计算两个时间差,具体到相差几天几小时几分

xjtuwjy 2010-06-04 08:44:29
如题:在asp.net中如何计算两个时间差,具体到相差几天几小时几分(或者说相差几小时,如7.5小时,45小时。。。)?
如果date1="2009-12-30 15:56:39"
date2="2010-6-3 09:29:28"
那么date1和date2相差几天几小时几分(或者说相差几小时,如7.5小时,45小时。。。)?


我知道使用 DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])
是返回两个日期之间的时间间隔。
但是interval 只能返回一个值,d或者w或者H
我现在想要实现的功能是返回两个时间的具体差,返回的形式如下:
d &"天"h &"小时"m &"分"就是返回几天几小时几分钟 我想要这样表达出来!

哪位高手知道怎么实现的请指点下!
小妹在线等。。。。。万分感谢!
...全文
1201 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
紫魂一号 2011-02-15
  • 打赏
  • 举报
回复
lz 你要用的是vb 不是c# 。。asp.net 用的就是c#
qq563240913 2011-02-15
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 xjtuwjy 的回复:]
你的语言是C# ,而我的是asp.net
[/Quote]
看见这个我只能表示很无奈。。。
blues_zhao_yang 2010-06-04
  • 打赏
  • 举报
回复

Dim time1 As DateTime
Dim time2 As DateTime
Dim res As TimeSpan
Dim a As String

time1 = "2009-12-30 15:56:39"
time2 = "2010-6-3 09:29:28"

res = time2 - time1
a = res.Hours
blues_zhao_yang 2010-06-04
  • 打赏
  • 举报
回复
你先搞清楚语言是什么??
asp.net是开发环境不是语言
asp.net下的语言要么用C#要么用VB

Dim t As Date = "2010-05-02 10:35:5"
Dim s As Integer = DateDiff(DateInterval.Second, t, Now)
Response.Write(Int(s / 3600) & "小时" & Int((s Mod 3600) / 60) & "分" & s Mod 60 & "秒")


DateTime time1 = Convert.ToDateTime("2009-12-30 15:56:39");
DateTime time2 = Convert.ToDateTime("2010-6-3 09:29:28");
TimeSpan dtTemp = time2 - time1;
Response.Write(dtTemp.Days + "天" + dtTemp.Hours + "小时" + dtTemp.Minutes + "分" + dtTemp.Seconds + "秒");


建个空页面,把代码复制到Page_Load里,两种语言的代码不都有了么
追寻风的自由 2010-06-04
  • 打赏
  • 举报
回复
huangwenquan123 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 xjtuwjy 的回复:]
你的语言是C# ,而我的是asp.net
[/Quote]
你的是vb
还有asp.net后台写的代码就是C#
asp.net不是语言- -
  • 打赏
  • 举报
回复
time = datediff( "s ",CDate( "2009-12-30 15:56:39 "), CDate( "2010-6-3 09:29:28 "))
xjtuwjy 2010-06-04
  • 打赏
  • 举报
回复
我是想在asp.net的后台页面该怎么写?就是把如下代码改一下:
Dim time1 As DateTime
Dim time2 As DateTime
Dim res As TimeSpan
Dim a As String

time1 = "2009-12-30 15:56:39"
time2 = "2010-6-3 09:29:28"

res = "time2" - "time1"
a = res.Hours()
IHandler 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 xjtuwjy 的回复:]
在asp.net中没有;的,我的是res = time2 - time1,而你的是res = time2 - time1;
[/Quote]
你用的是VB
xjtuwjy 2010-06-04
  • 打赏
  • 举报
回复
你的语言是C# ,而我的是asp.net
xjtuwjy 2010-06-04
  • 打赏
  • 举报
回复
在asp.net中没有;的,我的是res = time2 - time1,而你的是res = time2 - time1;
xjtuwjy 2010-06-04
  • 打赏
  • 举报
回复
去掉也不行,提示“运算符“-”不是不是为类型data定义的“
blues_zhao_yang 2010-06-04
  • 打赏
  • 举报
回复
创建一个空页面,写如下代码


protected void Page_Load(object sender, EventArgs e)
{
DateTime time1 = Convert.ToDateTime("2009-12-30 15:56:39");
DateTime time2 = Convert.ToDateTime("2010-6-3 09:29:28");
TimeSpan dtTemp = time2 - time1;
Response.Write(dtTemp.Days + "天" + dtTemp.Hours + "小时" + dtTemp.Minutes + "分" + dtTemp.Seconds + "秒");
}
blues_zhao_yang 2010-06-04
  • 打赏
  • 举报
回复
把引号去掉

res = time2 - time1
zhouwei7682719 2010-06-04
  • 打赏
  • 举报
回复

TimeSpan res = time1 - time2;

下面是你要的结果
res.Days
res.Hours
res.Minutes
res.Seconds
Goolge一搜索 多的是!
xjtuwjy 2010-06-04
  • 打赏
  • 举报
回复
blues_zhao_yang,不好意思,我用的是asp.net,不是C# code,我是这样写的,如下:
Dim time1 As DateTime
Dim time2 As DateTime
Dim res As TimeSpan
Dim a As String

time1 = "2009-12-30 15:56:39"
time2 = "2010-6-3 09:29:28"

res = "time2" - "time1"
a = res.Hours()
可是res = "time2" - "time1"这一句不行啊,提示说“类型double的值无法转换为system.TimeSpan”,请高手再指点一下,谢谢!偶是菜鸟。
blues_zhao_yang 2010-06-04
  • 打赏
  • 举报
回复
唉,还是给你贴代码吧..........


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("date1");
dt.Columns.Add("date2");
dt.Rows.Add("2009-12-30 15:56:39","2010-6-3 09:29:28");
TimeSpan dtTemp=Convert.ToDateTime(dt.Rows[0]["date2"])-Convert.ToDateTime(dt.Rows[0]["date1"]);
MessageBox.Show(dtTemp.Days + "天" + dtTemp.Hours + "小时" + dtTemp.Minutes + "分" + dtTemp.Seconds+"秒");
}
}
}
xjtuwjy 2010-06-04
  • 打赏
  • 举报
回复
继续在线等。。。
我说的在详细点,现在数据库中的一个表中有两个字段,如date1="2009-12-30 15:56:39"
date2="2010-6-3 09:29:28",现在有另外一个字段要存date1和date2的具体相差几个小时的(如7.5,42。。。),如果在asp.net中怎么实现?
忘各位高手们不吝赐教!越详细越好,万分感谢!
blues_zhao_yang 2010-06-04
  • 打赏
  • 举报
回复

Dim t As Date = "2010-05-02 10:35:5"
Dim s As Integer = DateDiff(DateInterval.Second, t, Now)
MsgBox(Int(s / 3600) & "小时" & Int((s Mod 3600) / 60) & "分" & s Mod 60 & "秒")
xjtuwjy 2010-06-04
  • 打赏
  • 举报
回复
findcaiyzh,能说的具体些吗?
假如date1="2009-12-30 15:56:39"
date2="2010-6-3 09:29:28"
那么在asp.net中用TimeSpan,date1和date2相差几天几小时几分(或者说相差几小时,如7.5小时,45小时。。。)?具体该怎么写呢?多谢!
加载更多回复(8)

62,046

社区成员

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

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

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

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