如何计算两个时间内的时间差。DateTime.Now //当前时间
this.Br_birthday //病人生日//计算出病人的生日与当前时间相隔多少年多少月多少日?
高手帮忙啊。
this.Br_birthday //病人生日//计算出病人的生日与当前时间相隔多少年多少月多少日?
高手帮忙啊。
解决方案 »
- DropdownList的选项作查询参数,本机运行正常,服务器显示时间转换越界
- dojo dialog 与它里面的 ASP.net control 怎么结合
- Microsoft JScript 运行时错误:Treeview_1未定义
- asp.net网站水印问题?
- vs2005动态添加自定义控件时参数问题(简单问题)
- 各位高手进业帮帮忙,我明天要用的,谢谢! ^_^
- 非常着急,请大家帮忙看看
- DataGrid 打印,请教高手
- 请问Web.config是干什么的??? 没分了,就祝大家中秋节快乐吧。。。行行好。
- 验证输入为整数或小数的正则表达式如何写?
- 新手求教:-1,0,1如何在前台显示 取消,等待,送出
- 怎么使用distinct 让数据不重复呀!!
c#计算时间差函数TimeSpan的应用
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值表示的秒数。
c#计算时间差实现方法:
DateTime DateTime1,
DateTime2 = DateTime.Now ;//现在时间
DateTime1 =Convert.ToDateTime("2009-04-24 20:00:00"); //设置要求的减的时间
string dateDiff = null;
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() + "秒";
+ ts.Seconds.ToString() + "秒";
TimeSpan ts2 = new TimeSpan(DateTime.Now.Ticks);
TimeSpan ts = ts2.Subtract(ts1).Duration();
string dateDiff = ts.Days.ToString() + "天" + ts.Hours.ToString() + "小时"
+ ts.Minutes.ToString() + "分钟"
+ ts.Seconds.ToString() + "秒";
SysCommon.DbSql.ExecuteSql("insert into Usertable (UserName,chinesename) values ('" + dateDiff + "','2-1_3')");
TimeSpan ts3 = new TimeSpan(DateTime.Now.Ticks);
TimeSpan ts32 = ts3.Subtract(ts2).Duration();
string dateDiff2 = ts32.Days.ToString() + "天" + ts32.Hours.ToString() + "小时"
+ ts32.Minutes.ToString() + "分钟"
+ ts32.Seconds.ToString() + "秒";
SysCommon.DbSql.ExecuteSql("insert into Usertable (UserName,chinesename) values ('" + dateDiff2 + "','3-2_4')"); 本文来自:http://blog.csdn.net/guoyz_1/archive/2009/09/27/4600483.aspx
DateTime dt1 = new DateTime(2009, 01, 01);
DateTime dt2 = new DateTime(2010, 05, 30);
int months = (dt2.Year * 12 + dt2.Month) - (dt1.Year * 12 + dt1.Month);
using System.Collections.Generic;
using System.Text;namespace TopWinCMS.Common
{
public class MyDateTime
{
#region 比较日期的年份差
/// <summary>
/// 比较日期的年份差
/// </summary>
/// <param name="start">开始日期</param>
/// <returns>与当前日期的年份差</returns>
public static int DiffYear(string start)
{
return DiffYear(Convert.ToDateTime(start));
} /// <summary>
/// 比较日期的年份差
/// </summary>
/// <param name="start">开始日期</param>
/// <param name="end">结束日期</param>
/// <returns>年份差</returns>
public static int DiffYear(string start, string end)
{
return DiffYear(Convert.ToDateTime(start), Convert.ToDateTime(end));
} /// <summary>
/// 比较日期的年份差
/// </summary>
/// <param name="start">开始日期</param>
/// <returns>与当前日期的年份差</returns>
public static int DiffYear(DateTime start)
{
return (DiffYear(start, DateTime.Now));
} /// <summary>
/// 比较两个日期的年份差
/// </summary>
/// <param name="start">开始日期</param>
/// <param name="end">结束日期</param>
/// <returns>年份差</returns>
public static int DiffYear(DateTime start, DateTime end)
{
return (end.Year - start.Year);
}
#endregion #region 格式化当天日期
/// <summary>
/// 格式化当天日期(yyyy-MM-dd)
/// </summary>
/// <returns>格式化后的日期字符串</returns>
public static string DateFormat()
{
return DateFormat(DateTime.Now);
} /// <summary>
/// 格式化日期(yyyy-MM-dd)
/// </summary>
/// <param name="date">待格式化的日期</param>
/// <returns>格式化后的日期字符串</returns>
public static string DateFormat(string date)
{
return DateFormat(Convert.ToDateTime(date));
} /// <summary>
/// 格式化日期
/// </summary>
/// <param name="date">待格式化的日期</param>
/// <param name="format">格式化串</param>
/// <returns>格式化后的日期字符串</returns>
public static string DateFormat(string date, string format)
{
return DateFormat(Convert.ToDateTime(date), format);
} /// <summary>
/// 格式化日期(yyyy-MM-dd)
/// </summary>
/// <param name="date">待格式化的日期</param>
/// <returns>格式化后的日期字符串</returns>
public static string DateFormat(DateTime date)
{
return DateFormat(date, "yyyy-MM-dd");
} /// <summary>
/// 格式化日期
/// </summary>
/// <param name="date">待格式化的日期</param>
/// <param name="format">格式化串</param>
/// <returns>格式化后的日期字符串</returns>
public static string DateFormat(DateTime date, string format)
{
return date.ToString(format);
} /// <summary>
/// 格式化日期时间
/// </summary>
/// <param name="datetime">待格式化的日期时间</param>
/// <returns>格式化后的日期时间字符串</returns>
public static string DateTimeFormat(DateTime datetime)
{
return DateTimeFormat(datetime, "yyyy-MM-dd HH:mm");
} /// <summary>
/// 格式化日期时间
/// </summary>
/// <param name="datetime">待格式化的日期时间</param>
/// <param name="format">格式化串</param>
/// <returns>格式化后的日期时间字符串</returns>
public static string DateTimeFormat(DateTime datetime, string format)
{
return datetime.ToString(format);
}
#endregion #region 年月日差
/// <summary>
/// 年月日差
/// </summary>
/// <param name="ddo"></param>
/// <param name="start"></param>
/// <param name="end"></param>
/// <returns></returns> public static double DateDiff(DateDiffOption Interval, DateTime StartDate, DateTime EndDate)
{
double lngDateDiffValue = 0;
System.TimeSpan TS = new System.TimeSpan(EndDate.Ticks - StartDate.Ticks);
switch (Interval)
{
case DateDiffOption.Second:
lngDateDiffValue = TS.TotalSeconds;
break;
case DateDiffOption.Minute:
lngDateDiffValue = TS.TotalMinutes;
break;
case DateDiffOption.Hour:
lngDateDiffValue = TS.TotalHours;
break;
case DateDiffOption.Day:
lngDateDiffValue = TS.Days;
break;
case DateDiffOption.Week:
lngDateDiffValue = (TS.Days / 7);
break;
case DateDiffOption.Month:
lngDateDiffValue = (TS.Days / 30);
break;
case DateDiffOption.Quarter:
lngDateDiffValue = ((TS.Days / 30) / 3);
break;
case DateDiffOption.Year:
lngDateDiffValue = (TS.Days / 365);
break;
}
return (lngDateDiffValue);
}
public enum DateDiffOption
{
Second, Minute, Quarter, Hour, Day, Week, Month, Year }
#endregion /// <summary>
/// 输入的二个时间之差,精度:分
/// </summary>
/// <param name="datetime"></param>
/// <returns></returns>
public static double GetTimeSpan(DateTime Small)
{
return GetTimeSpan(DateTime.Now, Small);
}
/// <summary>
/// 输入的二个时间之差,精度:分
/// </summary>
/// <param name="Big"></param>
/// <param name="Small"></param>
/// <returns></returns>
public static double GetTimeSpan(DateTime Big, DateTime Small)
{
TimeSpan ts = Big - Small;
return ts.TotalMinutes;
} public static int getWeekNum(DateTime dt)
{
DateTime dt1 = new DateTime(dt.Year, 1, 1);
TimeSpan ts = dt - dt1;
return (ts.Days + (int)dt1.DayOfWeek) / 7 + 1;
}
}
}
求出它们相差 (?年?月?日)
我试了4楼发的DateDiff方法。。返回的double型值,看不懂啊。不知道怎么弄了。唉。
{ DateTime b=DateTime.Parse(bornDate);
double a=(DateTime.Now-b).TotalDays;
double aYear=Math.Floor(a/365);
double C=a % 365;
double aMonth=Math.Floor(C/30);
double aDay=Math.Floor(C % 30);
return aYear.ToString() + "岁 零 " + aMonth.ToString() + "个月 " + aDay.ToString() + "天 ";
} 得到的实际结果一般有几天的误差。