В моем приложении C# я передаю строковую переменную, которая имеет формат yyyymmdd-yyyymmdd, который представляет собой от и до даты. Я хочу получить время начала и окончания для этих дат соответственно. В настоящее время у меня есть код ниже, но было интересно, было ли еще более элегантное решение?Как получить начальное и конечное время суток
Так что для PDR = 20090521-20090523 получит "20090521 00:00:00" и "20090523 23:59:59"
private void ValidateDatePeriod(string pdr, out DateTime startDate,
out DateTime endDate)
{
string[] dates = pdr.Split('-');
if (dates.Length != 2)
{
throw new Exception("Date period is of incorrect format");
}
if (dates[0].Length != 8 || dates[1].Length != 8)
{
throw new Exception("Split date periods are of incorrect format");
}
startDate = DateTime.ParseExact(dates[0] + " 00:00:00",
"yyyyMMdd HH:mm:ss", null);
endDate = DateTime.ParseExact(dates[1] + "23:59:59",
"yyyyMMdd HH::mm:ss", null);
}
Как уже отмечалось, EndOfDay, вероятно, является ненужной и неточной конструкцией, поскольку она не имеет определенного момента времени, за исключением, возможно, завтрашнего StartOfDay. – user420667