输出从c#中的文本文件中读取的缺失日期

时间:2012-04-03 11:57:58

标签: c#

我有一个带有日期列表的文本文件,我应该读取这些日期,只将缺少的日期写入名为输出文件的新文本文件中。在将缺少的日期写入文本文件时,我还必须排除周末和假日,并在范围内写下一些日期。

1 个答案:

答案 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);
                }
            }
        }

如果您成功,我可以建议您发布答案。