如何计算两个时间差,具体到相差几天几小时几分
如题:在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 &"分"就是返回几天几小时几分钟 我想要这样表达出来!
哪位高手知道怎么实现的请指点下!
小妹在线等。。。。。万分感谢! --------------------编程问答-------------------- 帮顶!!
--------------------编程问答-------------------- google“TimeSpan”的用法 --------------------编程问答-------------------- TimeSpan --------------------编程问答-------------------- TimeSpan res = time1 - time2;
下面是你要的结果
res.Days
res.Hours
res.Minutes
res.Seconds --------------------编程问答-------------------- DateTime time1 = new DateTime(2008, 12, 12, 9, 0, 0);
DateTime time2 = new DateTime(2008, 12, 12, 11, 30, 0);
TimeSpan ts = time2 - time1;
double d = ts.TotalMinutes / 60;
--------------------编程问答--------------------
yes --------------------编程问答--------------------
DateTime d1 =new DateTime(2004,1,1,15,36,05);--------------------编程问答-------------------- findcaiyzh,能说的具体些吗?
DateTime d2 =new DateTime(2004,3,1,20,16,35);
TimeSpan d3 = d2.Subtract(d1);
LbTime.Text = "相差:"
+d3.Days.ToString()+"天"
+d3.Hours.ToString()+"小时"
+d3.Minutes.ToString()+"分钟"
+d3.Seconds.ToString()+"秒";
假如date1="2009-12-30 15:56:39"
date2="2010-6-3 09:29:28"
那么在asp.net中用TimeSpan,date1和date2相差几天几小时几分(或者说相差几小时,如7.5小时,45小时。。。)?具体该怎么写呢?多谢! --------------------编程问答--------------------
--------------------编程问答-------------------- 继续在线等。。。
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 & "秒")
我说的在详细点,现在数据库中的一个表中有两个字段,如date1="2009-12-30 15:56:39"
date2="2010-6-3 09:29:28",现在有另外一个字段要存date1和date2的具体相差几个小时的(如7.5,42。。。),如果在asp.net中怎么实现?
忘各位高手们不吝赐教!越详细越好,万分感谢!
--------------------编程问答-------------------- 唉,还是给你贴代码吧..........
--------------------编程问答-------------------- blues_zhao_yang,不好意思,我用的是asp.net,不是C# code,我是这样写的,如下:
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+"秒");
}
}
}
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”,请高手再指点一下,谢谢!偶是菜鸟。
--------------------编程问答--------------------
Goolge一搜索 多的是! --------------------编程问答-------------------- 把引号去掉
TimeSpan res = time1 - time2;
下面是你要的结果
res.Days
res.Hours
res.Minutes
res.Seconds
--------------------编程问答-------------------- 创建一个空页面,写如下代码
res = time2 - time1
--------------------编程问答-------------------- 去掉也不行,提示“运算符“-”不是不是为类型data定义的“ --------------------编程问答-------------------- 在asp.net中没有;的,我的是res = time2 - time1,而你的是res = time2 - time1;
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 + "秒");
}
--------------------编程问答-------------------- 你的语言是C# ,而我的是asp.net --------------------编程问答--------------------
你用的是VB --------------------编程问答-------------------- 我是想在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()
--------------------编程问答-------------------- time = datediff( "s ",CDate( "2009-12-30 15:56:39 "), CDate( "2010-6-3 09:29:28 "))
--------------------编程问答--------------------
你的是vb
还有asp.net后台写的代码就是C#
asp.net不是语言- - --------------------编程问答-------------------- --------------------编程问答-------------------- 你先搞清楚语言是什么??
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里,两种语言的代码不都有了么 --------------------编程问答--------------------
--------------------编程问答-------------------- Dim time1 As DateTime
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
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
--------------------编程问答--------------------
看见这个我只能表示很无奈。。。 --------------------编程问答-------------------- lz 你要用的是vb 不是c# 。。asp.net 用的就是c#
补充:.NET技术 , ASP.NET