/// <summary>
/// 查询24小时的时间组合,需自行判断时间格式的有效性
/// </summary>
/// <param name="startStr">开始时间</param>
/// <param name="endStr">结束时间</param>
/// <returns>时间集合</returns>
public static List<DateTime> GetStartStopDate(string startStr, string endStr)
{
List<DateTime> times = new List<DateTime>();
var startTime = Convert.ToDateTime(startStr);
var endTime = Convert.ToDateTime(endStr);
if (startTime > endTime) throw new Exception("开始时间大于结束时间");
TimeSpan ts = new TimeSpan(startTime.Ticks);
TimeSpan te = new TimeSpan(endTime.Ticks);
TimeSpan t = te.Subtract(ts).Duration();
var hour = t.TotalHours;
var count = Math.Floor(hour / 24);
var remainder = hour % 24;
times.Add(startTime);
if (hour <= 24)
{
times.Add(endTime);
}
else
{
for (int i = 0; i < count; i++)
{
startTime = startTime.AddHours(24);
times.Add(startTime);
}
//如果还有余数,则直接加进来
if (remainder > 0)
{
times.Add(endTime);
}
}
return times;
//调用案例
//for (int i = 0; i < times.Count; i++)
// {
// if (i + 1 >= times.Count) break;
// QueryTime(times[i], times[i + 1]);
// }
}