Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Small method to calculate since time
Message
From
10/10/2011 06:27:45
 
 
To
09/10/2011 12:00:17
General information
Forum:
ASP.NET
Category:
Coding, syntax and commands
Environment versions
Environment:
VB 9.0
OS:
Windows 7
Network:
Windows 2003 Server
Database:
MS SQL Server
Application:
Web
Miscellaneous
Thread ID:
01525501
Message ID:
01525947
Views:
33
>>Great. I just cobbled things together as a 'proof of concept' (except all it did at first was prove that it didn't work :-{ )
>
>Succeeded anyway
>
>>Now it looks good enough for production code!
>>Next useful thing would be extension methods for DateTime to add and subtract DateTimeSpan....
>>
>
>Mods
>(1) Changed property MilliSeconds to Milliseconds and _MilliSeconds to Milliseconds - more in line with the Milliseconds of DateTime
>
>(2) Added a constructor that accepts DateTimeOffset
>
>		public DateTimeSpan(DateTimeOffset start, DateTimeOffset end)
>			: this(start.UtcDateTime, end.UtcDateTime)
>		{
>		}
>
>
>(3) Extension methods Add and Subtract for DateTime and DateTimeOffset
>
>	public static partial class ExtensionMethods_DateTime
>	{
>		//______________________________________________________________________
>		public static DateTime Add(this DateTime dt, DateTimeSpan dts)
>		{
>			return dt.AddYears(dts.Years)
>				.AddMonths(dts.Months)
>				.AddDays(dts.Days)
>				.AddHours(dts.Hours)
>				.AddMinutes(dts.Minutes)
>				.AddSeconds(dts.Seconds)
>				.AddMilliseconds(dts.Milliseconds);
>		}
>		//______________________________________________________________________
>		public static DateTime Subtract(this DateTime dt, DateTimeSpan dts)
>		{
>			return dt.AddYears(-dts.Years)
>				.AddMonths(-dts.Months)
>				.AddDays(-dts.Days)
>				.AddHours(-dts.Hours)
>				.AddMinutes(-dts.Minutes)
>				.AddSeconds(-dts.Seconds)
>				.AddMilliseconds(-dts.Milliseconds);
>		}
>		//______________________________________________________________________
>	
>	}
>
>
>
>	public static partial class ExtensionMethods_DateTimeOffset
>	{
>		//______________________________________________________________________
>		public static DateTimeOffset Add(this DateTimeOffset dto, DateTimeSpan dts)
>		{
>			return dto.AddYears(dts.Years)
>				.AddMonths(dts.Months)
>				.AddDays(dts.Days)
>				.AddHours(dts.Hours)
>				.AddMinutes(dts.Minutes)
>				.AddSeconds(dts.Seconds)
>				.AddMilliseconds(dts.Milliseconds);
>		}
>		//______________________________________________________________________
>		public static DateTimeOffset Subtract(this DateTimeOffset dto, DateTimeSpan dts)
>		{
>			return dto.AddYears(-dts.Years)
>				.AddMonths(-dts.Months)
>				.AddDays(-dts.Days)
>				.AddHours(-dts.Hours)
>				.AddMinutes(-dts.Minutes)
>				.AddSeconds(-dts.Seconds)
>				.AddMilliseconds(-dts.Milliseconds);
>		}
>		//______________________________________________________________________
>	
>	}
>
More possible improvements ? :

Return a DateTimeSpan regardless of the parameter order.
i.e if first parameter is the later date still return the same difference (or possibly a 'negative' DateTimeSpan)

Make GetDateDiff logic available as an extension method of DateTime
e.g. DateTimeSpan dts = myDate.DateDiff(DateTime.Now);
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform