Duration data structure
using System;
namespace ActionPack.Common
{
public class Duration
{
TimeSpan t = new TimeSpan();
public TimeSpan TimeSpan { get { return t; } }
public int Days { get { return t.Days; } }
public int Hours { get { return t.Hours; } }
public int Milliseconds { get { return t.Milliseconds; } }
public int Minutes { get { return t.Minutes; } }
public int Seconds { get { return t.Seconds; } }
public long Ticks { get { return t.Ticks; } }
public double TotalDays { get { return t.TotalDays; } }
public double TotalHours { get { return t.TotalHours; } }
public double TotalMilliseconds { get { return t.TotalMilliseconds; } }
public double TotalMinutes { get { return t.TotalMinutes; } }
public double TotalSeconds { get { return t.TotalSeconds; } }
public Duration(int days, int hours, int minutes, int seconds, int milliseconds)
{
t = new TimeSpan(days, hours, minutes, seconds, milliseconds);
}
public Duration(int days, int hours, int minutes, int seconds)
{
t = new TimeSpan(days, hours, minutes, seconds);
}
public Duration(int hours, int minutes, int seconds)
{
t = new TimeSpan(hours, minutes, seconds);
}
public Duration(long ticks)
{
t = new TimeSpan(ticks);
}
private Duration(TimeSpan ts)
{
t = ts;
}
public Duration Add(Duration d)
{
return new Duration(TimeSpan.Add(d.TimeSpan));
}
public int CompareTo(object o)
{
return t.CompareTo(o);
}
public int CompareTo(Duration d)
{
return t.CompareTo(d.TimeSpan);
}
public override int GetHashCode()
{
return TimeSpan.GetHashCode();
}
public override bool Equals(object o)
{
return t.Equals(o);
}
public bool Equals(Duration d)
{
return t.Equals(d.TimeSpan);
}
public Duration Negate()
{
return new Duration(TimeSpan.Negate());
}
public Duration Subtract(Duration d)
{
return new Duration(TimeSpan.Subtract(d.TimeSpan));
}
public override string ToString()
{
return TimeSpan.ToString();
}
public static bool operator >(Duration l, Duration r)
{
return l.TimeSpan > r.TimeSpan;
}
public static bool operator <(Duration l, Duration r)
{
return l.TimeSpan < r.TimeSpan;
}
public static bool operator <=(Duration l, Duration r)
{
return l.TimeSpan <= r.TimeSpan;
}
public static bool operator >=(Duration l, Duration r)
{
return l.TimeSpan >= r.TimeSpan;
}
public static bool operator ==(Duration l, Duration r)
{
return l.Equals(r);
}
public static bool operator !=(Duration l, Duration r)
{
return !(l == r);
}
public static Duration operator +(Duration l, Duration r)
{
return new Duration(l.TimeSpan + r.TimeSpan);
}
public static Duration operator -(Duration l, Duration r)
{
return new Duration(l.TimeSpan + r.TimeSpan);
}
public static Duration operator *(Duration l, int r)
{
return new Duration(l.TimeSpan.Ticks * r);
}
public static Duration operator *(int l, Duration r)
{
return r*l;
}
}
}
Related examples in the same category
| 1. | new TimeSpan(2, 12, 0, 0) | | |
| 2. | TimeSpan.TicksPerDay | | |
| 3. | Initialize a time span to zero | | |
| 4. | Initialize a time span to 14 days | | |
| 5. | Initialize a time span to 1:02:03 | | |
| 6. | Initialize a time span to 250 milliseconds | | |
| 7. | Initalize a time span to 99 days, 23 hours, 59 minutes, and 59.9999999 seconds | | |
| 8. | Calculation based on the TimeSpan | |  |
| 9. | Subtract 15 minutes from the current TimeSpan and print the result | | |
| 10. | Measuring the Time Taken to Add Some Numbers | | |
| 11. | Use FromDays(), FromHours(), FromMinutes(), FromSeconds(), FromMilliseconds(), and FromTicks() methods to create new TimeSpan instances | | |
| 12. | Use the Parse() method to convert strings to TimeSpan instances | | |
| 13. | Use the Add() method to add a TimeSpan instance to another | | |
| 14. | Use the Subtract() method to subtract a TimeSpan instance from another | | |
| 15. | Use the Duration() method to add two TimeSpan instances | | |
| 16. | Use the Negate() method to add two TimeSpan instances | | |
| 17. | Create a TimeSpan instance, specifying the hours, minutes, and seconds | | |
| 18. | Create a TimeSpan instance, specifying the days, hours, minutes, and seconds | | |
| 19. | Create a TimeSpan instance, specifying the days, hours, minutes, seconds, and milliseconds | | |
| 20. | Create a TimeSpan instance, specifying the number of ticks | | |
| 21. | Display the properties for myTimeSpan | | |
| 22. | Initalize a timespan to 25 milliseconds | | |
| 23. | Custom TimeSpan Format Strings | | |
| 24. | Create TimeSpan value from seconds | | |
| 25. | TimeSpan calculations | | |
| 26. | Create a new TimeSpan to a specified number of hours, minutes, and seconds. | | |
| 27. | Create a new TimeSpan to a specified number of days, hours, minutes, and seconds. | | |
| 28. | Create a TimeSpan to a specified number of days, hours, minutes, seconds, and milliseconds. | | |
| 29. | Create a new TimeSpan to the specified number of ticks. | | |
| 30. | Zero TimeSpan | | |
| 31. | Default output of ToString() method | | |
| 32. | Subtract one DateTime from another you get a TimeSpan | | |
| 33. | Elapsed Time Today with TimeSpan | | |
| 34. | Get properties of TimeSpan | | |
| 35. | Returns a new TimeSpan object whose value is the absolute value of the current TimeSpan object. | | |
| 36. | Example of the TimeSpan relational operators. | | |
| 37. | Get a TimeSpan that represents a specified number of days | | |
| 38. | Create a TimeSpan that represents a specified number of hours | | |
| 39. | Returns a TimeSpan that represents a specified number of milliseconds. | | |
| 40. | Returns a TimeSpan that represents a specified number of minutes | | |
| 41. | Create a TimeSpan that represents a specified number of seconds | | |
| 42. | Create a TimeSpan from units of ticks. | | |
| 43. | Predefined TimeSpan value:MaxValue, MinValue, Zero, TicksPerDay, TicksPersHour | | |
| 44. | Converts string to TimeSpan | | |
| 45. | Converts string to TimeSpan by using the specified format and culture-specific format information. | | |
| 46. | Convert TimeSpan in whole and fractional days | | |
| 47. | Gets the value of TimeSpan in whole and fractional hours. | | |
| 48. | Gets the value of TimeSpan in whole and fractional milliseconds. | | |
| 49. | Gets the value of TimeSpan in whole and fractional minutes. | | |
| 50. | Gets the value of TimeSpan in whole and fractional seconds. | | |