jmpatton
asked on
Formatting TimeSpan in C#
How can I format a Date Difference in C# using timespan.subtract
Here is what I have so far, I need it to return in hh:mi format
If there is an easier way to do it other than timespan im open to it. I just have to return this to the user in an hh:mi format. Even (negative times) -hh:mi if the time returned is negative.
Thanks
Here is what I have so far, I need it to return in hh:mi format
If there is an easier way to do it other than timespan im open to it. I just have to return this to the user in an hh:mi format. Even (negative times) -hh:mi if the time returned is negative.
Thanks
DateTime startTime = new DateTime();
DateTime endTime = new DateTime();
TimeSpan conflictDuration = new TimeSpan();
startTime = 03/28/2011 11:45;
endTime = 03/28/2011 1:47;
conflictDuration = endTime.Subtract(startTime);
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
poo, i don't know what the heck i was thinking.
I've often wondered why they didn't implement a ToString() overload that accepts a format for the TimeSpan...it would make perfect sense to me! =)
it would be hard for a span that was more than a day, i guess?
BTW, TimeSpan.ToString(format) is available in .NET 4:
http://msdn.microsoft.com/en-us/library/dd992632.aspx
So, p_davis' answer is correct as long as it's .NET 4.
I hope this helps.
http://msdn.microsoft.com/en-us/library/dd992632.aspx
So, p_davis' answer is correct as long as it's .NET 4.
I hope this helps.
Woohoo! Thanks for update wdosanjos. =)
You have to escape the ":" though like this:
*This is different than the DateTime.ToString() method which is perfectly happy accepting an un-escaped colon!
You have to escape the ":" though like this:
Dim dtA As DateTime = DateTime.Now
Dim dtB As DateTime = dtA.AddDays(Math.PI)
Dim ts As TimeSpan = dtB.Subtract(dtA)
Label1.Text = ts.ToString("dd\:hh\:mm\:ss")
*This is different than the DateTime.ToString() method which is perfectly happy accepting an un-escaped colon!
what is this dim you speak of??? ;p
Hahaha...grrrr....I'm always forgetting what ZONE I'm in! =)
In not as beautiful as VB.Net, the C# equivalent would be: *wink*
In not as beautiful as VB.Net, the C# equivalent would be: *wink*
private void button1_Click(object sender, EventArgs e)
{
DateTime dtA = DateTime.Now;
DateTime dtB = dtA.AddDays(Math.PI);
TimeSpan ts = dtB.Subtract(dtA);
label1.Text = ts.ToString(@"dd\:hh\:mm\:ss");
}
well defined space of a function embraced by beautiful curly brackets.....all is right with the world
// no comment;
code puns =)
don't hate!
Here's one way:
Open in new window