c# datetime
// -------------------- DATE and TIME --------------------- //
// ------- DATETIME ------- //
// Create a DateTime object
var year = 2020;
var month = 12;
var day = 3;
var date = new DateTime(year, month, day);
// Get the current date or time
var today = DateTime.Today;
var now = DateTime.Now;
Console.WriteLine(now.Hour); // To get only the hour
Console.WriteLine(now.Minute); // To get only the minutes
// How to modify DateTime objects?
var now = DateTime.Now;
var tomorrow = now.AddDay(1);
var monthBefore = now.AddMonths(-1);
// Convert DateTime to different string formats
var now = DateTime.Now;
string longDate = now.ToLongDateString();
string shortDate = now.ToShortDateString();
string normalDate = now.ToString("yyyy-MM-dd HH:mm");
// Convert string to DateTime
DateTime myDate = DateTime.Parse("2012-07-12");
//OR
DateTime myDate = DateTime.ParseExact("2009-05-08 14:40:52,531", "yyyy-MM-dd HH:mm:ss,fff",null);
// ------- TIMESPAN ------- //
// In this case we are working with duration or time intervals
// Create a TimeSpan object
var hours = 2;
var minutes = 1;
var seconds = 7;
var timeSpan = new TimeSpan(hours, minutes, seconds);
// Get the timespan in hours, minutes, seconds,...
var hourSpan = TimeSpan.FromHours(2);
var secondSpan = TimeSpan.FromSeconds(34);
// Convert DateTime to TimeSpan
var start = DateTime.Now;
var end = DateTime.Now.AddMinutes(90);
var duration = end - start; // The difference between 2 DateTimes returns a TimeSpan
// How to modify TimeSpan objects?
var duration = new TimeSpan(3, 6, 9);
var newDuration = duration.Add(TimeSpan.FromSeconds(26)) // Add 26 seconds
var newDuration = duration.Subtract(TimeSpan.FromSeconds(12)) // Subtract 12 seconds
// Convert a TimeSpan to a total of hours, minutes, seconds,...
var timeSpan = new TimeSpan(2, 1, 0);
var totalMinutes = timeSpan.TotalMinutes; // Converts 2 hours and 1 minute to (60*2 + 1) minutes
// Convert a String to a TimeSpan
var duration = TimeSpan.Parse("04:07:12");
//OR
var duration = TimeSpan.ParseExact("23:59", @"hh\:mm", null) // This also verify if string is in that exact format of "hh:mm"