我有一个带有日期列表的文本文件,我应该读取这些日期,只将缺少的日期写入名为输出文件的新文本文件中。在将缺少的日期写入文本文件时,我还必须排除周末和假日,并在范围内写下一些日期。
答案 0 :(得分:1)
我有点厌恶回答这个问题,因为似乎没有代表你努力解决它。但是,下面的代码片段可以帮到您。它非常基本和粗糙,但可以在控制台应用程序中运行。
您仍然需要弄清楚这是如何适合您的示例,以及如何从文件和其他一些项目中读取。
注意事项 - 这不是一个简单的复制/粘贴工作。
//setup - you will have to read from a file - the array is for demo purposes.
var sl = new string[] { "01/12/2012",
"02/12/2012",
"03/12/2012",
//..etc... ......my code has the full range here
"15/12/2012",
//"16/12/2012", //commented out for demo purposes
"17/12/2012",
//"18/12/2012", //commented out for demo purposes
"19/12/2012",
//"20/12/2012", //commented out for demo purposes
//"21/12/2012", //commented out for demo purposes
"22/12/2012",
"23/12/2012",
//"24/12/2012", //commented out for demo purposes
"25/12/2012",
//..etc... ......my code has the full range here
"31/12/2012" };
DateTime nextdt, dt_start, dt_end;
//get start and end dates and then range in days
dt_start = DateTime.Parse(sl[0]);
dt_end = DateTime.Parse(sl[sl.Length - 1]);
TimeSpan range = dt_end.Subtract(dt_start);
int j = 0;
//loop across the range searching for missing days and filtering sturday and sunday
for (int i=0; i<range.Days; i++)
{
nextdt = dt_start.AddDays(i);
if (DateTime.Parse(sl[j]).Equals(nextdt))
{
j++;
}
else
{
if ( (nextdt.DayOfWeek.ToString() != "Saturday") &&
(nextdt.DayOfWeek.ToString() != "Sunday") )
{
Console.WriteLine(nextdt.ToString() + ":" + nextdt.DayOfWeek);
}
}
}
如果您成功,我可以建议您发布答案。