Выведите на экран номера месяцев, в которых больше первых показов, чем повторных - C#
Формулировка задачи:
2. Еженедельная телевизионная программа проходила с первой субботы сентября до 31 декабря 2015 года. Повтор этой программы проходил в следующий за субботой понедельник. Выведите все субботнего показа в файл first.txt, а даты повторов в файл second.txt. Выведите на экран номера месяцев, в которых больше первых показов, чем повторных. Если таких случаев нет, то на экран выведите 0.
Решение задачи: «Выведите на экран номера месяцев, в которых больше первых показов, чем повторных»
textual
Листинг программы
using System;
namespace DDate
{
class Program
{
static void Main(string[] args)
{
DateTime fromdate;
DateTime todate = new DateTime(2015, 12, 31);
bool start = false;
int firstshow = 0;
int nextshow = 0;
int startmonth = 0;
System.IO.StreamWriter file1 = new System.IO.StreamWriter("c:\\temp\\Saturday.txt");
System.IO.StreamWriter file2 = new System.IO.StreamWriter("c:\\temp\\Monday.txt");
for (fromdate = new DateTime(2015, 9, 1); fromdate <= todate; fromdate = fromdate.AddDays(1))
{
if (fromdate.Month != startmonth)
{
if (start == false)
{
startmonth = fromdate.Month;
}
else
{
if (firstshow > nextshow)
{
Console.WriteLine(startmonth);
}
firstshow = 0;
nextshow = 0;
startmonth = fromdate.Month;
}
}
if (fromdate.DayOfWeek == DayOfWeek.Saturday)
{
start = true;
firstshow++;
file1.WriteLine(fromdate.ToShortDateString());
}
if (fromdate.DayOfWeek == DayOfWeek.Monday && start == true)
{
nextshow++;
file2.WriteLine(fromdate.ToShortDateString());
}
}
if (firstshow > nextshow)
{
Console.WriteLine(startmonth);
}
file1.Close();
file2.Close();
Console.WriteLine("End process. Press any key.");
Console.ReadKey();
}
}
}