TimeSpan Object
TimeSpan object (a structure again) is
one of the important object that helps us in performing various operations on
DateTime object. It basically represents a time interval in terms of days,
hours, minutes, seconds and fractions of seconds. Basically, a TimeSpan object
can be used to store the result of DateTime objects operations like addition,
subtraction in terms of a time interval.
Basics of DateTime Objects
To get the current date and
time,
DateTime dtNow = DateTime.Now;
The property Now will return the
current system date and time represented in local time. The property Today will
get you the current date.
To get the current Coordinated
Universal Time (UTC) date and time,
DateTime dtNow =
DateTime.UtcNow;
Operations on DateTime Objects
DateTime Addition
DateTime object is packed with number
of methods to perform addition operations. For example, to add number days,
hours, minutes, etc.
DateTime.Add(TimeSpan value)
DateTime.AddDays(double value)
DateTime.AddHours(double value)
DateTime.AddMilliseconds(double
value)
DateTime.AddMinutes(double
value)
DateTime.AddMonths(int value)
DateTime.AddSeconds(double
value)
DateTime.AddTicks(double value)
DateTime.AddYears(int value)
To add one year(365 days, a non leap
year) with current DateTime,
TimeSpan tsYear = new TimeSpan(365, 0, 0,
0, 0);
DateTime dtNow = DateTime.Now;
Response.Write("Add Time Span: " +
dtNow.Add(tsYear).ToString());
Rest of the above addition operations
are self explanatory.
DateTime Subtraction
Subtraction operations on DateTime
object can be done on 2 ways,
1. A DateTime object can be subtracted with another DateTime object
which will return a TimeSpan object.
DateTime dtNow = DateTime.Now;
DateTime dtDate =
DateTime.Today;
TimeSpan ts =
dtNow.Subtract(dtDate);
Response.Write("Subtract(DateTime.Now -
DateTime.Today): " + ts.ToString());
2. A DateTime object can be subtracted with a TimeSpan object to return
a Date. For example, to subtract 365 days(a non leap year) from
today,
TimeSpan tsYear = new TimeSpan(365, 0, 0,
0, 0);
DateTime dtNow = DateTime.Now;
DateTime dtResult =
dtNow.Subtract(tsYear);
Response.Write("Subtract(DateTime.Now -
new TimeSpan(365, 0, 0, 0, 0)): " + dtResult.ToString());
DateTime Comparison
To compare 2 DateTime object, we can
use DateTime.Compare(DateTime, DateTime)/ DateTime.CompareTo(DateTime) methods,
both return integer. Return value 0 indicates both are equal, a negative return
value indicates first argument is earlier than second and positive return value
indicates first is later than second.
Let us see all the 3 cases with an
example,
Case 1
DateTime dtNow = DateTime.Now;
DateTime dtNow2 = DateTime.Now;
if (DateTime.Compare(dtNow,
dtNow2) == 0)
{
Response.Write(dtNow.ToString() + " is same as " +
dtNow2.ToString());
}
else if (DateTime.Compare(dtNow,
dtNow2) < 0)
{
Response.Write(dtNow.ToString() + " is earlier than " +
dtNow2.ToString());
}
else
{
Response.Write(dtNow.ToString() + " is later than " +
dtNow2.ToString());
}
Result
28/06/2009 13:16:35 is same as 28/06/2009
13:16:35
Case 2
Try the below code,
DateTime dtNow = DateTime.Now;
DateTime dtNow2 =
DateTime.Now;
dtNow2 = dtNow2.Add(tsYear);
if (DateTime.Compare(dtNow,
dtNow2) == 0)
{
Response.Write(dtNow.ToString() + " is same as " +
dtNow2.ToString());
}
else if (DateTime.Compare(dtNow,
dtNow2) < 0)
{
Response.Write(dtNow.ToString() + " is earlier than " +
dtNow2.ToString());
}
else
{
Response.Write(dtNow.ToString() + " is later than " +
dtNow2.ToString());
}
Result
28/06/2009 13:16:35 is earlier than
28/06/2010 13:16:35
Case 3
DateTime dtNow = DateTime.Now;
DateTime dtNow2 =
DateTime.Now;
TimeSpan tsYear = new
TimeSpan(365, 0, 0, 0, 0);
dtNow2 =
dtNow2.Subtract(tsYear);
if (DateTime.Compare(dtNow,
dtNow2) == 0)
{
Response.Write(dtNow.ToString() + " is same as " +
dtNow2.ToString());
}
else if (DateTime.Compare(dtNow,
dtNow2) < 0)
{
Response.Write(dtNow.ToString() + " is earlier than " +
dtNow2.ToString());
}
else
{
Response.Write(dtNow.ToString() + " is later than " +
dtNow2.ToString());
}
Result
28/06/2009 13:28:05 is later than
28/06/2008 13:28:05
|