Muszę utworzyć datę i godzinę o północy
Właśnie to zrobiłem:
DateTime endTime = DateTime.Now;
endTime.Subtract(endTime.TimeOfDay);
Nie testowałem tego jeszcze, zakładam, że działa, ale czy jest lepszy / czystszy sposób?
Po prostu użyj foo.Date
lub DateTime.Today
do dzisiejszej daty
DateTime.Today
źródło
Teraz
endTime.TimeOfDay.ToString()
wraca"00:00:00"
źródło
DateTime.Now
.AddDays(1)
.Date
źródło
DateTime.Today.AddDays(1)
jest ładniejszy niż to.Możesz używać
DateTime.Today
z dokładnymi sekundami północy.DateTime today = DateTime.Today; DateTime mid = today.AddDays(1).AddSeconds(-1); Console.WriteLine(string.Format("Today: {0} , Mid Night: {1}", today.ToString(), mid.ToString())); Console.ReadLine();
Powinno to wydrukować:
Today: 11/24/2016 10:00:00 AM , Mid Night: 11/24/2016 11:59:59 PM
źródło
var dateMidnight = DateTime.ParseExact(DateTime.Now.ToString("yyyyMMdd"), "yyyyMMdd", CultureInfo.InvariantCulture);
źródło
private bool IsServiceDatabaseProcessReadyToStart() { bool isGoodParms = true; DateTime currentTime = DateTime.Now; //24 Hour Clock string[] timeSpan = currentTime.ToString("HH:mm:ss").Split(':'); //Default to Noon int hr = 12; int mn = 0; int sc = 0; if (!string.IsNullOrEmpty(timeSpan[0])) { hr = Convert.ToInt32(timeSpan[0]); } else { isGoodParms = false; } if (!string.IsNullOrEmpty(timeSpan[1])) { mn = Convert.ToInt32(timeSpan[1]); } else { isGoodParms = false; } if (!string.IsNullOrEmpty(timeSpan[2])) { sc = Convert.ToInt32(timeSpan[2]); } else { isGoodParms = false; } if (isGoodParms == true ) { TimeSpan currentTimeSpan = new TimeSpan(hr, mn, sc); TimeSpan minTimeSpan = new TimeSpan(0, 0, 0); TimeSpan maxTimeSpan = new TimeSpan(0, 04, 59); if (currentTimeSpan >= minTimeSpan && currentTimeSpan <= maxTimeSpan) { return true; } else { return false; } } else { return false; } }
źródło