Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| using System; | |
| public class Class1 | |
| { | |
| public static void Main() | |
| { | |
| ShowSchedule(); | |
| Console.WriteLine("----------"); | |
| ShowStartOfWorkWeek(); | |
| Console.WriteLine("----------"); | |
| ShowShiftStartTimes(); | |
| Console.WriteLine("----------"); | |
| ShowQuarters(); | |
| Console.WriteLine("----------"); | |
| DisplayTimes(); | |
| Console.WriteLine("----------"); | |
| ShowLegalLicenseAge(); | |
| Console.WriteLine("----------"); | |
| CompareForEquality1(); | |
| Console.WriteLine("----------"); | |
| CompareForEquality2(); | |
| Console.WriteLine("----------"); | |
| CompareForEquality3(); | |
| Console.WriteLine("----------"); | |
| CompareExactly(); | |
| Console.WriteLine("----------"); | |
| Subtract1(); | |
| Console.WriteLine("----------"); | |
| Subtract2(); | |
| Console.WriteLine("----------"); | |
| ConvertToLocal(); | |
| Console.WriteLine("----------"); | |
| ConvertToUniversal(); | |
| Console.WriteLine("----------"); | |
| } | |
| private static void ShowSchedule() | |
| { | |
| // <Snippet1> | |
| DateTimeOffset takeOff = new DateTimeOffset(2007, 6, 1, 7, 55, 0, | |
| new TimeSpan(-5, 0, 0)); | |
| DateTimeOffset currentTime = takeOff; | |
| TimeSpan[] flightTimes = new TimeSpan[] | |
| {new TimeSpan(2, 25, 0), new TimeSpan(1, 48, 0)}; | |
| Console.WriteLine("Takeoff is scheduled for {0:d} at {0:T}.", | |
| takeOff); | |
| for (int ctr = flightTimes.GetLowerBound(0); | |
| ctr <= flightTimes.GetUpperBound(0); ctr++) | |
| { | |
| currentTime = currentTime.Add(flightTimes[ctr]); | |
| Console.WriteLine("Destination #{0} at {1}.", ctr + 1, currentTime); | |
| } | |
| // </Snippet1> | |
| } | |
| private static void ShowStartOfWorkWeek() | |
| { | |
| // <Snippet2> | |
| DateTimeOffset workDay = new DateTimeOffset(2008, 3, 1, 9, 0, 0, | |
| DateTimeOffset.Now.Offset); | |
| int month = workDay.Month; | |
| // Start with the first Monday of the month | |
| if (workDay.DayOfWeek != DayOfWeek.Monday) | |
| { | |
| if (workDay.DayOfWeek == DayOfWeek.Sunday) | |
| workDay = workDay.AddDays(1); | |
| else | |
| workDay = workDay.AddDays(8 - (int)workDay.DayOfWeek); | |
| } | |
| Console.WriteLine("Beginning of Work Week In {0:MMMM} {0:yyyy}:", workDay); | |
| // Add one week to the current date | |
| do | |
| { | |
| Console.WriteLine(" {0:dddd}, {0:MMMM}{0: d}", workDay); | |
| workDay = workDay.AddDays(7); | |
| } while (workDay.Month == month); | |
| // The example produces the following output: | |
| // Beginning of Work Week In March 2008: | |
| // Monday, March 3 | |
| // Monday, March 10 | |
| // Monday, March 17 | |
| // Monday, March 24 | |
| // Monday, March 31 | |
| // </Snippet2> | |
| } | |
| private static void ShowShiftStartTimes() | |
| { | |
| // <Snippet3> | |
| const int SHIFT_LENGTH = 8; | |
| DateTimeOffset startTime = new DateTimeOffset(2007, 8, 6, 0, 0, 0, | |
| DateTimeOffset.Now.Offset); | |
| DateTimeOffset startOfShift = startTime.AddHours(SHIFT_LENGTH); | |
| Console.WriteLine("Shifts for the week of {0:D}", startOfShift); | |
| do | |
| { | |
| // Exclude third shift | |
| if (startOfShift.Hour > 6) | |
| Console.WriteLine(" {0:d} at {0:T}", startOfShift); | |
| startOfShift = startOfShift.AddHours(SHIFT_LENGTH); | |
| } while (startOfShift.DayOfWeek != DayOfWeek.Saturday & | |
| startOfShift.DayOfWeek != DayOfWeek.Sunday); | |
| // The example produces the following output: | |
| // | |
| // Shifts for the week of Monday, August 06, 2007 | |
| // 8/6/2007 at 8:00:00 AM | |
| // 8/6/2007 at 4:00:00 PM | |
| // 8/7/2007 at 8:00:00 AM | |
| // 8/7/2007 at 4:00:00 PM | |
| // 8/8/2007 at 8:00:00 AM | |
| // 8/8/2007 at 4:00:00 PM | |
| // 8/9/2007 at 8:00:00 AM | |
| // 8/9/2007 at 4:00:00 PM | |
| // 8/10/2007 at 8:00:00 AM | |
| // 8/10/2007 at 4:00:00 PM | |
| // </Snippet3> | |
| } | |
| private static void ShowQuarters() | |
| { | |
| // <Snippet4> | |
| DateTimeOffset quarterDate = new DateTimeOffset(2007, 1, 1, 0, 0, 0, | |
| DateTimeOffset.Now.Offset); | |
| for (int ctr = 1; ctr <= 4; ctr++) | |
| { | |
| Console.WriteLine("Quarter {0}: {1:MMMM d}", ctr, quarterDate); | |
| quarterDate = quarterDate.AddMonths(3); | |
| } | |
| // This example produces the following output: | |
| // Quarter 1: January 1 | |
| // Quarter 2: April 1 | |
| // Quarter 3: July 1 | |
| // Quarter 4: October 1 | |
| // </Snippet4> | |
| } | |
| private static void DisplayTimes() | |
| { | |
| // <Snippet5> | |
| double[] lapTimes = {1.308, 1.283, 1.325, 1.3625, 1.317, 1.267}; | |
| DateTimeOffset currentTime = new DateTimeOffset(1, 1, 1, 1, 30, 0, | |
| DateTimeOffset.Now.Offset); | |
| Console.WriteLine("Start: {0:T}", currentTime); | |
| for (int ctr = lapTimes.GetLowerBound(0); ctr <= lapTimes.GetUpperBound(0); ctr++) | |
| { | |
| currentTime = currentTime.AddMinutes(lapTimes[ctr]); | |
| Console.WriteLine("Lap {0}: {1:T}", ctr + 1, currentTime); | |
| } | |
| // The example produces the following output: | |
| // Start: 1:30:00 PM | |
| // Lap 1: 1:31:18 PM | |
| // Lap 2: 1:32:35 PM | |
| // Lap 3: 1:33:54 PM | |
| // Lap 4: 1:35:16 PM | |
| // Lap 5: 1:36:35 PM | |
| // Lap 6: 1:37:51 PM | |
| // </Snippet5> | |
| } | |
| private static void ShowLegalLicenseAge() | |
| { | |
| // <Snippet6> | |
| const int minimumAge = 16; | |
| DateTimeOffset dateToday = DateTimeOffset.Now; | |
| DateTimeOffset latestBirthday = dateToday.AddYears(-1 * minimumAge); | |
| Console.WriteLine("To possess a driver's license, you must have been born on or before {0:d}.", | |
| latestBirthday); | |
| // </Snippet6> | |
| } | |
| // <Snippet9> | |
| private static void CompareForEquality1() | |
| { | |
| DateTimeOffset firstTime = new DateTimeOffset(2007, 9, 1, 6, 45, 0, | |
| new TimeSpan(-7, 0, 0)); | |
| DateTimeOffset secondTime = firstTime; | |
| Console.WriteLine("{0} = {1}: {2}", | |
| firstTime, secondTime, | |
| firstTime.Equals(secondTime)); | |
| secondTime = new DateTimeOffset(2007, 9, 1, 6, 45, 0, | |
| new TimeSpan(-6, 0, 0)); | |
| Console.WriteLine("{0} = {1}: {2}", | |
| firstTime, secondTime, | |
| firstTime.Equals(secondTime)); | |
| secondTime = new DateTimeOffset(2007, 9, 1, 8, 45, 0, | |
| new TimeSpan(-5, 0, 0)); | |
| Console.WriteLine("{0} = {1}: {2}", | |
| firstTime, secondTime, | |
| firstTime.Equals(secondTime)); | |
| // The example displays the following output to the console: | |
| // 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM -07:00: True | |
| // 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM -06:00: False | |
| // 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 8:45:00 AM -05:00: True | |
| // </Snippet9> | |
| } | |
| // <Snippet10> | |
| private static void CompareForEquality2() | |
| { | |
| DateTimeOffset firstTime = new DateTimeOffset(2007, 9, 1, 6, 45, 0, | |
| new TimeSpan(-7, 0, 0)); | |
| object secondTime = firstTime; | |
| Console.WriteLine("{0} = {1}: {2}", | |
| firstTime, secondTime, | |
| firstTime.Equals(secondTime)); | |
| secondTime = new DateTimeOffset(2007, 9, 1, 6, 45, 0, | |
| new TimeSpan(-6, 0, 0)); | |
| Console.WriteLine("{0} = {1}: {2}", | |
| firstTime, secondTime, | |
| firstTime.Equals(secondTime)); | |
| secondTime = new DateTimeOffset(2007, 9, 1, 8, 45, 0, | |
| new TimeSpan(-5, 0, 0)); | |
| Console.WriteLine("{0} = {1}: {2}", | |
| firstTime, secondTime, | |
| firstTime.Equals(secondTime)); | |
| secondTime = null; | |
| Console.WriteLine("{0} = {1}: {2}", | |
| firstTime, secondTime, | |
| firstTime.Equals(secondTime)); | |
| secondTime = new DateTime(2007, 9, 1, 6, 45, 00); | |
| Console.WriteLine("{0} = {1}: {2}", | |
| firstTime, secondTime, | |
| firstTime.Equals(secondTime)); | |
| // The example displays the following output to the console: | |
| // 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM -07:00: True | |
| // 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM -06:00: False | |
| // 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 8:45:00 AM -05:00: True | |
| // 9/1/2007 6:45:00 AM -07:00 = : False | |
| // 9/1/2007 6:45:00 AM -07:00 = 9/1/2007 6:45:00 AM: False | |
| // </Snippet10> | |
| } | |
| private static void CompareForEquality3() | |
| { | |
| // <Snippet11> | |
| DateTimeOffset firstTime = new DateTimeOffset(2007, 11, 15, 11, 35, 00, | |
| DateTimeOffset.Now.Offset); | |
| DateTimeOffset secondTime = firstTime; | |
| Console.WriteLine("{0} = {1}: {2}", | |
| firstTime, secondTime, | |
| DateTimeOffset.Equals(firstTime, secondTime)); | |
| // The value of firstTime remains unchanged | |
| secondTime = new DateTimeOffset(firstTime.DateTime, | |
| TimeSpan.FromHours(firstTime.Offset.Hours + 1)); | |
| Console.WriteLine("{0} = {1}: {2}", | |
| firstTime, secondTime, | |
| DateTimeOffset.Equals(firstTime, secondTime)); | |
| // value of firstTime remains unchanged | |
| secondTime = new DateTimeOffset(firstTime.DateTime + TimeSpan.FromHours(1), | |
| TimeSpan.FromHours(firstTime.Offset.Hours + 1)); | |
| Console.WriteLine("{0} = {1}: {2}", | |
| firstTime, secondTime, | |
| DateTimeOffset.Equals(firstTime, secondTime)); | |
| // The example produces the following output: | |
| // 11/15/2007 11:35:00 AM -07:00 = 11/15/2007 11:35:00 AM -07:00: True | |
| // 11/15/2007 11:35:00 AM -07:00 = 11/15/2007 11:35:00 AM -06:00: False | |
| // 11/15/2007 11:35:00 AM -07:00 = 11/15/2007 12:35:00 PM -06:00: True | |
| // </Snippet11> | |
| } | |
| private static void CompareExactly() | |
| { | |
| // <Snippet12> | |
| DateTimeOffset instanceTime = new DateTimeOffset(2007, 10, 31, 0, 0, 0, | |
| DateTimeOffset.Now.Offset); | |
| DateTimeOffset otherTime = instanceTime; | |
| Console.WriteLine("{0} = {1}: {2}", | |
| instanceTime, otherTime, | |
| instanceTime.EqualsExact(otherTime)); | |
| otherTime = new DateTimeOffset(instanceTime.DateTime, | |
| TimeSpan.FromHours(instanceTime.Offset.Hours + 1)); | |
| Console.WriteLine("{0} = {1}: {2}", | |
| instanceTime, otherTime, | |
| instanceTime.EqualsExact(otherTime)); | |
| otherTime = new DateTimeOffset(instanceTime.DateTime + TimeSpan.FromHours(1), | |
| TimeSpan.FromHours(instanceTime.Offset.Hours + 1)); | |
| Console.WriteLine("{0} = {1}: {2}", | |
| instanceTime, otherTime, | |
| instanceTime.EqualsExact(otherTime)); | |
| // The example produces the following output: | |
| // 10/31/2007 12:00:00 AM -07:00 = 10/31/2007 12:00:00 AM -07:00: True | |
| // 10/31/2007 12:00:00 AM -07:00 = 10/31/2007 12:00:00 AM -06:00: False | |
| // 10/31/2007 12:00:00 AM -07:00 = 10/31/2007 1:00:00 AM -06:00: False | |
| // </Snippet12> | |
| } | |
| private static void Subtract1() | |
| { | |
| // <Snippet13> | |
| DateTimeOffset firstDate = new DateTimeOffset(2008, 3, 25, 18, 0, 0, | |
| new TimeSpan(-7, 0, 0)); | |
| DateTimeOffset secondDate = new DateTimeOffset(2008, 3, 25, 18, 0, 0, | |
| new TimeSpan(-5, 0, 0)); | |
| DateTimeOffset thirdDate = new DateTimeOffset(2008, 2, 28, 9, 0, 0, | |
| new TimeSpan(-7, 0, 0)); | |
| TimeSpan difference; | |
| difference = firstDate.Subtract(secondDate); | |
| Console.WriteLine("({0}) - ({1}): {2} days, {3}:{4:d2}", | |
| firstDate.ToString(), | |
| secondDate.ToString(), | |
| difference.Days, | |
| difference.Hours, | |
| difference.Minutes); | |
| difference = firstDate.Subtract(thirdDate); | |
| Console.WriteLine("({0}) - ({1}): {2} days, {3}:{4:d2}", | |
| firstDate.ToString(), | |
| secondDate.ToString(), | |
| difference.Days, | |
| difference.Hours, | |
| difference.Minutes); | |
| // The example produces the following output: | |
| // (3/25/2008 6:00:00 PM -07:00) - (3/25/2008 6:00:00 PM -05:00): 0 days, 2:00 | |
| // (3/25/2008 6:00:00 PM -07:00) - (3/25/2008 6:00:00 PM -05:00): 26 days, 9:00 | |
| // </Snippet13> | |
| } | |
| private static void Subtract2() | |
| { | |
| // <Snippet14> | |
| DateTimeOffset offsetDate = new DateTimeOffset(2007, 12, 3, 11, 30, 0, | |
| new TimeSpan(-8, 0, 0)); | |
| TimeSpan duration = new TimeSpan(7, 18, 0, 0); | |
| Console.WriteLine(offsetDate.Subtract(duration).ToString()); // Displays 11/25/2007 5:30:00 PM -08:00 | |
| // </Snippet14> | |
| } | |
| private static void ConvertToLocal() | |
| { | |
| // <Snippet15> | |
| // Local time changes on 3/11/2007 at 2:00 AM | |
| DateTimeOffset originalTime, localTime; | |
| originalTime = new DateTimeOffset(2007, 3, 11, 3, 0, 0, | |
| new TimeSpan(-6, 0, 0)); | |
| localTime = originalTime.ToLocalTime(); | |
| Console.WriteLine("Converted {0} to {1}.", originalTime.ToString(), | |
| localTime.ToString()); | |
| originalTime = new DateTimeOffset(2007, 3, 11, 4, 0, 0, | |
| new TimeSpan(-6, 0, 0)); | |
| localTime = originalTime.ToLocalTime(); | |
| Console.WriteLine("Converted {0} to {1}.", originalTime.ToString(), | |
| localTime.ToString()); | |
| // Define a summer UTC time | |
| originalTime = new DateTimeOffset(2007, 6, 15, 8, 0, 0, | |
| TimeSpan.Zero); | |
| localTime = originalTime.ToLocalTime(); | |
| Console.WriteLine("Converted {0} to {1}.", originalTime.ToString(), | |
| localTime.ToString()); | |
| // Define a winter time | |
| originalTime = new DateTimeOffset(2007, 11, 30, 14, 0, 0, | |
| new TimeSpan(3, 0, 0)); | |
| localTime = originalTime.ToLocalTime(); | |
| Console.WriteLine("Converted {0} to {1}.", originalTime.ToString(), | |
| localTime.ToString()); | |
| // The example produces the following output: | |
| // Converted 3/11/2007 3:00:00 AM -06:00 to 3/11/2007 1:00:00 AM -08:00. | |
| // Converted 3/11/2007 4:00:00 AM -06:00 to 3/11/2007 3:00:00 AM -07:00. | |
| // Converted 6/15/2007 8:00:00 AM +00:00 to 6/15/2007 1:00:00 AM -07:00. | |
| // Converted 11/30/2007 2:00:00 PM +03:00 to 11/30/2007 3:00:00 AM -08:00. | |
| // </Snippet15> | |
| } | |
| private static void ConvertToUniversal() | |
| { | |
| // <Snippet16> | |
| DateTimeOffset localTime, otherTime, universalTime; | |
| // Define local time in local time zone | |
| localTime = new DateTimeOffset(new DateTime(2007, 6, 15, 12, 0, 0)); | |
| Console.WriteLine("Local time: {0}", localTime); | |
| Console.WriteLine(); | |
| // Convert local time to offset 0 and assign to otherTime | |
| otherTime = localTime.ToOffset(TimeSpan.Zero); | |
| Console.WriteLine("Other time: {0}", otherTime); | |
| Console.WriteLine("{0} = {1}: {2}", | |
| localTime, otherTime, | |
| localTime.Equals(otherTime)); | |
| Console.WriteLine("{0} exactly equals {1}: {2}", | |
| localTime, otherTime, | |
| localTime.EqualsExact(otherTime)); | |
| Console.WriteLine(); | |
| // Convert other time to UTC | |
| universalTime = localTime.ToUniversalTime(); | |
| Console.WriteLine("Universal time: {0}", universalTime); | |
| Console.WriteLine("{0} = {1}: {2}", | |
| otherTime, universalTime, | |
| universalTime.Equals(otherTime)); | |
| Console.WriteLine("{0} exactly equals {1}: {2}", | |
| otherTime, universalTime, | |
| universalTime.EqualsExact(otherTime)); | |
| Console.WriteLine(); | |
| // The example produces the following output to the console: | |
| // Local time: 6/15/2007 12:00:00 PM -07:00 | |
| // | |
| // Other time: 6/15/2007 7:00:00 PM +00:00 | |
| // 6/15/2007 12:00:00 PM -07:00 = 6/15/2007 7:00:00 PM +00:00: True | |
| // 6/15/2007 12:00:00 PM -07:00 exactly equals 6/15/2007 7:00:00 PM +00:00: False | |
| // | |
| // Universal time: 6/15/2007 7:00:00 PM +00:00 | |
| // 6/15/2007 7:00:00 PM +00:00 = 6/15/2007 7:00:00 PM +00:00: True | |
| // 6/15/2007 7:00:00 PM +00:00 exactly equals 6/15/2007 7:00:00 PM +00:00: True | |
| // </Snippet16> | |
| } | |
| } |