代码可以满足您列出的需求,您可以考虑通过创建扩展方法并使用
DateTime.Hour
在您的if声明中:
public static class StringExtensions
{
public static IEnumerable<DateTime> ToDateTimePairs(this string input)
{
var dates = input.Split('-').Select(x => DateTime.Parse(x.Trim(), CultureInfo.GetCultureInfo("en-NZ"))).ToList();
if (dates[1].Hour < dates[0].Hour)
{
dates[1] = dates[1].AddDays(1);
}
return dates;
}
}
string input = "7:00 am - 12:00 am";
var dates = input.ToDateTimePairs();
foreach(var date in dates)
{
Console.WriteLine(date);
}
Console.ReadKey();
ToDateTimePairs()
(您应该只有两个有效的
DateTime
分割字符串后的对象等)。实现它的方式取决于您;现在,如果字符串中包含无效日期,则调用
DateTime.Parse()
将抛出一个
FormatException
DateTime.TryParse()
相反。