我的数据中有一些无效的日期值。我想用无效的日期来计算无效的日期值,这样做的最佳算法是什么? 例如
Date
--------------------
Day/Month/Year
2/15/2001
Missing-Value
3/-1/1999
32/2/1998
-1/2/2007
1/1/-1999
答案 0 :(得分:4)
使用DateTime.TryParse()
。然后,您可以检查日期是否有效。
string dateString = "32/11/2013";
DateTime date = new DateTime();
if (!DateTime.TryParse(dateString, out date))
{
date = myDefaultDate; //replace the invalid date with a default one
//or with the current date
//date = DateTime.Now.ToShortDateString();
}
答案 1 :(得分:0)
您可以执行以下操作:
List<string> your_input_dates = new List<string>();
DateTime temp_date;
foreach (var date in your_input_dates) {
var date_valid = DateTime.TryParse(date, out temp_date)
if (date_valid)
// do something with valid date, using temp_date variable
else
// do something else, prompt for error, or just continue
}
答案 2 :(得分:0)
您没有提到如何从无效日期中找到有效日期。所以,我只是用当前时间替换了无效的那些。
var list = new List<string>
{
"11-03-2013",
"11-03-2013",
"11-03-2013",
"11-04-2013",
"11-04-2013",
"11-04-2013"
};
DateTime d;
IEnumerable<string> valid = list.Select(s => DateTime.TryParse(s, out d) ? s : DateTime.Now.ToShortDateString());