Advertisement
OOP_exam

1. Olympiad Task

Jan 26th, 2017
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.25 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace olymp2
  8. {
  9.     //  Даны три числа  D, M, G - день, месяц, год
  10.     //  ( 0 < D < 32, 0 < M < 13, G>=1 ) 1 янв 1 года - понедельник.
  11.     //  Вводится дата. Вывести на экран день недели
  12.  
  13.     class Date
  14.     {
  15.         public int Day
  16.         { get; set;}
  17.  
  18.         public int MonthNumber
  19.         { get; set; }
  20.  
  21.         public int Year
  22.         { get; set; }
  23.  
  24.         public Date(int day, int month, int year)
  25.         {
  26.             if (day < 32 && day > 0)
  27.             {
  28.                 Day = day;
  29.             }
  30.             else
  31.             {
  32.                 Console.WriteLine("Неверный день");
  33.                 return;
  34.             }
  35.             if (month < 13 && month > 0)
  36.             {
  37.                 MonthNumber = month;
  38.             }
  39.             else
  40.             {
  41.                 Console.WriteLine("Неверный месяц");
  42.                 return;
  43.             }
  44.  
  45.             if (year < 1)
  46.             {
  47.                 Console.WriteLine("Неверный год");
  48.                 return;
  49.             }
  50.             else
  51.             {
  52.                 Year = year;
  53.             }
  54.  
  55.         }
  56.     }
  57.  
  58.     class Program
  59.     {
  60.         static void Main(string[] args)
  61.         {
  62.             bool simple = true;
  63.             string[] WeekArray = { "понедельник", "вторник", "среда", "четверг", "пятница", "суббота", "воскресенье" };
  64.             int[] MonthArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
  65.             int[] MonthDaySimp = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  66.             int[] MonthDayVis = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  67.             string Name;
  68.             string day = null;
  69.             string month = null;
  70.             string year = null;
  71.  
  72.             Console.WriteLine("Введите дату в формате DD.MM.YYYY:");
  73.             string strDate = Console.ReadLine();
  74.  
  75.             int index;
  76.             int u;
  77.             for (u = 0; strDate[u] != '.'; u++)
  78.             {
  79.                 day = day + strDate[u];
  80.             }
  81.  
  82.             index = u + 1;
  83.  
  84.             for (u = index; strDate[u] != '.'; u++)
  85.             {
  86.                 month = month + strDate[u];
  87.             }
  88.  
  89.             index = u + 1;
  90.  
  91.             for (u = index; u < strDate.Length; u++)
  92.             {
  93.                 year = year + strDate[u];
  94.             }
  95.  
  96.             Date data = new Date(
  97.                 Convert.ToInt32(day),
  98.                 Convert.ToInt32(month),
  99.                 Convert.ToInt32(year)
  100.                 );
  101.  
  102.             if (data.Year % 400 == 0 || ( data.Year % 4 == 0 && data.Year % 100 != 0))
  103.             {
  104.                 simple = false;
  105.             }
  106.  
  107.             int k = 0;
  108.             for (int i = 1; i < data.Year; i++)
  109.             {
  110.                 if (i % 400 == 0 || (i % 4 == 0 && i % 100 != 0))
  111.                 {
  112.                     k++;
  113.                 }
  114.             }
  115.  
  116.             int AmountDays = (data.Year - k - 1) * 365 + k * 366;
  117.  
  118.             if(simple)
  119.             {
  120.                 for (int i = 0; i < data.MonthNumber - 1; i++)
  121.                     AmountDays += MonthDaySimp[i];
  122.                 AmountDays += data.Day;
  123.             }
  124.             else
  125.             {
  126.                 for (int i = 0; i < data.MonthNumber - 1; i++)
  127.                     AmountDays += MonthDayVis[i];
  128.                 AmountDays += data.Day;
  129.             }
  130.  
  131.             int temp;
  132.             int AmountDaysTemp = AmountDays;
  133.  
  134.             for (temp = 0; temp < AmountDaysTemp; temp++)
  135.             {
  136.                 if (temp == 7)
  137.                 {
  138.                     AmountDaysTemp = AmountDaysTemp - 7;
  139.                     temp = 0;
  140.                 }
  141.             }
  142.  
  143.             Name = WeekArray[temp - 1];
  144.  
  145.            // Console.WriteLine("високосные: {0} шт", k);
  146.            // Console.WriteLine("количество дней: {0} шт", AmountDays);
  147.             Console.WriteLine("День недели: {0}", Name);
  148.             Console.ReadKey(true);
  149.  
  150.         }
  151.     }
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement