Advertisement
maxlarin2

ClassFinal

Nov 9th, 2013
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 20.80 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 lab4class
  8. {
  9.     class date
  10.     {
  11.         public int Day, Month, Year, FDay, FMonth, FYear;
  12.         public date()
  13.         {
  14.             Day = 0;
  15.             Month = 0;
  16.             Year = 0;
  17.             FDay = 0;
  18.             FMonth = 0;
  19.             FYear = 0;
  20.         }
  21.         public date(int Day, int Month, int Year, int FDay, int FMonth, int FYear)
  22.         {
  23.             this.Day = Day;
  24.             this.Month = Month;
  25.             this.Year = Year;
  26.             this.FDay = FDay;
  27.             this.FMonth = FMonth;
  28.             this.FYear = FYear;
  29.  
  30.         }
  31.         public void SetDay(int Day)                                                                     //Ввод дня
  32.         {
  33.             bool ft = false;
  34.             switch (Month)
  35.             {
  36.                 case 2:
  37.                     {
  38.                         while (ft == false)
  39.                         {
  40.                             if (!(Day < 1 || Day > 29))
  41.                             {
  42.                                 ft = true;
  43.                                 this.Day = Day;
  44.                             }
  45.  
  46.                         }
  47.                     } break;
  48.                 case 1:
  49.                 case 3:
  50.                 case 5:
  51.                 case 7:
  52.                 case 8:
  53.                 case 10:
  54.                 case 12:
  55.                     {
  56.                         while (ft == false)
  57.                         {
  58.                             if (!(Day < 1 || Day > 31))
  59.                             {
  60.                                 ft = true;
  61.                                 this.Day = Day;
  62.                             }
  63.                         }
  64.                     }
  65.                     break;
  66.                 case 4:
  67.                 case 6:
  68.                 case 9:
  69.                 case 11:
  70.                     {
  71.                         while (ft == false)
  72.                         {
  73.                             if (!(Day < 1 || Day > 30))
  74.                             {
  75.                                 ft = true;
  76.                                 this.Day = Day;
  77.                             }
  78.                         }
  79.                     }
  80.                     break;
  81.                 default: Environment.Exit(0); break;
  82.             }
  83.         }
  84.         public void SetMonth(int Month)                                                                     //Ввод месяца
  85.         {
  86.             bool ft = false;
  87.             while (ft == false)
  88.             {
  89.                 if (!(Month < 1 || Month > 12))
  90.                 {
  91.                     ft = true;
  92.                     this.Month = Month;
  93.                 }
  94.             }
  95.         }
  96.         public void SetYear(int Year)                                                                       //Ввод года
  97.         {
  98.             this.Year = Year;
  99.         }
  100.         public int getDay()                                                                                 //Возвращение дня
  101.         {
  102.             return Day;
  103.         }
  104.         public int getMonth()                                                                               //Возвращение месяца
  105.         {
  106.             return Month;
  107.         }
  108.         public int getYear()                                                                                //Возвращение года
  109.         {
  110.             return Year;
  111.         }
  112.         public void SetFYear(int tempp, int num)
  113.         {
  114.             if (tempp > 0)
  115.             {
  116.                 this.FYear = Year + num ;
  117.             }
  118.             else this.FYear = Year - num;
  119.         }
  120.         public void SetFMonth(int tempp, int num)
  121.         {
  122.             if (tempp > 0)
  123.             {
  124.                 while (Month + num >= 12)
  125.                 {
  126.                     FYear = Year + 1;
  127.                     Year++;
  128.                     num -= 12;
  129.                     this.FMonth = Month + num;
  130.                    
  131.                 }
  132.                 this.FMonth = Month + num;
  133.             }
  134.             else
  135.             {
  136.                 while (num >= Month + 12)
  137.                 {
  138.                     FYear=Year - 1;
  139.                     Year--;
  140.                     num -= 12;
  141.                     this.FMonth = Month - num;
  142.                 }
  143.                 FMonth = Month - num;
  144.                 if (FMonth <= 0)
  145.                 {
  146.                     FMonth = 12 - Math.Abs(FMonth);
  147.                 }
  148.                 this.FMonth = Month;
  149.             }
  150.         }
  151.         public void SetFDay(int tempp, int num)
  152.         {
  153.             if (tempp > 0)
  154.             {
  155.                 while (num + FDay >= 365)
  156.                 {
  157.                     Year++;
  158.                     num -= 365;
  159.                 }
  160.                 while (num +FDay >= 30)
  161.                 {
  162.                     Month++;
  163.                     num -= 30;
  164.                 }
  165.                 if (num >= 12)
  166.                 {
  167.                     num -= 12;
  168.                     this.FDay = Day + num;
  169.                 }
  170.                 else this.FDay = Day + num;
  171.             }
  172.             else
  173.                 {
  174.                     while (num + FDay >= 365)
  175.                     {
  176.                         Year--;
  177.                         num -= 365;
  178.                     }
  179.                     while (num >= 30  + Day)
  180.                     {
  181.                         Month--;
  182.                         num -= 30;
  183.                         this.FDay = Day - num;
  184.                     }
  185.                     this.FDay = Day - num;
  186.                    
  187.                 }
  188.            
  189.         }
  190.        
  191.         public int getFYear()
  192.         {
  193.  
  194.             return FYear;
  195.         }
  196.         public int getFMonth()
  197.         {
  198.  
  199.             return FMonth;
  200.         }
  201.         public int getFDay()
  202.         {
  203.  
  204.             return FDay;
  205.         }
  206.     }
  207.     class Program
  208.     {
  209.         static void Main(string[] args)
  210.         {
  211.             bool temp = false, ttemp = false, tttemp = false;
  212.             string input, inp;
  213.             int month = 0, day = 0, year = Int16.MinValue, change = 0,changee = 0, num = 0, tempp = 0;
  214.             date x = new date();                                                                                        //Блок переменных
  215.  
  216.             Console.WriteLine("Введите, пожалуйста, месяц: ");
  217.             while (temp == false)
  218.             {
  219.                 input = Console.ReadLine();
  220.                 if (int.TryParse(input, out month) && (Convert.ToInt16(input) >= 1) && (Convert.ToInt16(input) <= 12))
  221.                 {
  222.                     temp = true;
  223.                 }
  224.                 else { Console.WriteLine("Введите, пожалуйста, месяц в числовом формате в диапазоне [1 ; 12]: "); }
  225.             }
  226.             x.SetMonth(month);                                                                                          //Ввод месяца
  227.  
  228.             Console.WriteLine("Введите, пожалуйста, день: ");
  229.             temp = false;
  230.             while (temp == false)
  231.             {
  232.                 input = Console.ReadLine();
  233.                 if (int.TryParse(input, out day) && (Convert.ToInt16(input) >= 1) && (Convert.ToInt16(input) <= 31))
  234.                 {
  235.                     temp = true;
  236.                 }
  237.  
  238.                 else { Console.WriteLine("Введите, пожалуйста, день в числовом формате в диапазоне [ 1 ; 31 ]: "); }
  239.             }
  240.             x.SetDay(day);                                                                                              //Ввод дня
  241.  
  242.             Console.WriteLine("Введите, пожалуйста, год: ");
  243.             temp = false;
  244.             while (temp == false)
  245.             {
  246.                 input = Console.ReadLine();
  247.                 if (int.TryParse(input, out year))
  248.                 {
  249.                     temp = true;
  250.                 }
  251.  
  252.                 else { Console.WriteLine("Введите, пожалуйста, год в числовом формате: "); }
  253.             }
  254.             x.SetYear(year);                                                                                          //Ввод года
  255.  
  256.             Console.WriteLine("Введенная дата:\n" + (x.getDay()) + "." + (x.getMonth()) + "." + (x.getYear()));       //Вывод введенных даннах
  257.  
  258.             Console.WriteLine("Хотите ли изменить данные? (Y/N)");
  259.             temp = false;
  260.             while (temp == false)
  261.             {
  262.                 input = Console.ReadLine();
  263.                 if (input == "Y" || input == "y")
  264.                 {
  265.                     temp = true;
  266.                 }
  267.                 else
  268.                     if (input == "N" || input == "n")
  269.                     {
  270.                         Console.WriteLine("Тогда всего доброго! Нажмите enter для выхода..");
  271.                         Console.ReadLine();
  272.                         Environment.Exit(0);
  273.                     }
  274.                     else
  275.                     {
  276.                         Console.WriteLine("Вам требуется ввести лишь Y или N (регистр не имеет значения)..");
  277.                     }
  278.             }                                                                                                                 //Выбор пользователя об изменении даты
  279.  
  280.             Console.WriteLine("Выберете категорию изменения:\n1.День\n2.Месяц\n3.Год");
  281.             temp = false;
  282.             while (temp == false)
  283.             {
  284.                 string m = Console.ReadLine();
  285.                 if (int.TryParse(m, out change))
  286.                 {
  287.                     temp = true;
  288.                     switch (change)
  289.                     {
  290.                         case 3:
  291.                             {
  292.                                 Console.WriteLine("1.Уменьшить\n2.Увеличить");
  293.                                 while (ttemp == false)
  294.                                 {
  295.  
  296.                                     input = Console.ReadLine();
  297.                                     if (int.TryParse(input, out changee) && ((Convert.ToInt16(input) == 2) || (Convert.ToInt16(input) == 1)))
  298.                                     {
  299.                                         ttemp = true;
  300.                                         Console.WriteLine("Введите количество лет, на которое изменить");
  301.                                        
  302.                                         switch (changee)
  303.                                         {
  304.                                             case 1:
  305.                                                 {
  306.                                                     num = Convert.ToInt16(input);
  307.                                                     while (tttemp == false)
  308.                                                     {
  309.                                                         inp = Console.ReadLine();
  310.                                                         if (int.TryParse(inp, out num))
  311.                                                         {
  312.                                                             tttemp = true;
  313.                                                             tempp--;
  314.                                                             x.SetFYear(tempp, num);
  315.                                                             x.FMonth = x.Month;
  316.                                                             x.FDay = x.Day;
  317.                                                         }
  318.                                                         else Console.WriteLine("Введите, пожалуйста, число!");
  319.                                                     }
  320.                                                 } break;
  321.                                             case 2:  
  322.                                                 {
  323.                                                     num = Convert.ToInt16(input);
  324.                                                     while (tttemp == false)
  325.                                                     {
  326.                                                         inp = Console.ReadLine();
  327.                                                         if (int.TryParse(inp, out num))
  328.                                                         {
  329.                                                             tttemp = true;
  330.                                                             tempp++;
  331.                                                             x.SetFYear(tempp, num);
  332.                                                             x.FMonth = x.Month;
  333.                                                             x.FDay = x.Day;
  334.                                                         }
  335.                                                         else Console.WriteLine("Введите, пожалуйста,число!");
  336.                                                     }
  337.                                                 } break;
  338.                                         }
  339.  
  340.                                     }
  341.                                     else Console.WriteLine("Введите, пожалуйста,число 1 или 2!");
  342.                                 }
  343.                             } break;
  344.                         case 2:
  345.                             {
  346.                                 Console.WriteLine("1.Уменьшить\n2.Увеличить");
  347.                                 while (ttemp == false)
  348.                                 {
  349.                                     input = Console.ReadLine();
  350.                                     if (int.TryParse(input, out changee) && ((Convert.ToInt16(input) == 2) || (Convert.ToInt16(input) == 1)))
  351.                                     {
  352.                                         ttemp = true;
  353.                                         Console.WriteLine("Введите количество месяцев, на которое изменить");
  354.  
  355.                                         switch (changee)
  356.                                         {
  357.                                             case 1:
  358.                                                 {
  359.                                                     num = Convert.ToInt16(input);
  360.                                                     while (tttemp == false)
  361.                                                     {
  362.                                                         inp = Console.ReadLine();
  363.                                                         if (int.TryParse(inp, out num))
  364.                                                         {
  365.                                                             tttemp = true;
  366.                                                             tempp--;
  367.                                                             x.SetFMonth(tempp, num);
  368.                                                             x.FDay = x.Day;
  369.                                                             x.FYear = x.Year;
  370.                                                         }
  371.                                                         else Console.WriteLine("Число!");
  372.                                                     }
  373.                                                 } break;
  374.                                             case 2:
  375.                                                 {
  376.                                                     num = Convert.ToInt16(input);
  377.                                                     while (tttemp == false)
  378.                                                     {
  379.                                                         inp = Console.ReadLine();
  380.                                                         if (int.TryParse(inp, out num))
  381.                                                         {
  382.                                                             tttemp = true;
  383.                                                             tempp++;
  384.                                                             x.SetFMonth(tempp, num);
  385.                                                             x.FDay = x.Day;
  386.                                                             x.FYear = x.Year;
  387.                                                         }
  388.                                                         else Console.WriteLine("Введите, пожалуйста,число!");
  389.                                                     }
  390.                                                 } break;
  391.                                         }
  392.  
  393.                                     }
  394.                                     else Console.WriteLine("Введите, пожалуйста,число!");
  395.                                 }
  396.                             } break;
  397.                         case 1:
  398.                             {
  399.                                 Console.WriteLine("1.Уменьшить\n2.Увеличить");
  400.                                 while (ttemp == false)
  401.                                 {
  402.                                     input = Console.ReadLine();
  403.                                     if (int.TryParse(input, out changee) && ((Convert.ToInt16(input) == 2) || (Convert.ToInt16(input) == 1)))
  404.                                     {
  405.                                         ttemp = true;
  406.                                         Console.WriteLine("Введите количество дней, на которое изменить");
  407.  
  408.                                         switch (changee)
  409.                                         {
  410.                                             case 1:
  411.                                                 {
  412.                                                     num = Convert.ToInt16(input);
  413.                                                     while (tttemp == false)
  414.                                                     {
  415.                                                         inp = Console.ReadLine();
  416.                                                         if (int.TryParse(inp, out num))
  417.                                                         {
  418.                                                             tttemp = true;
  419.                                                             tempp--;
  420.                                                             x.SetFDay(tempp, num);
  421.                                                             x.FMonth = x.Month;
  422.                                                             x.FYear = x.Year;
  423.                                                         }
  424.                                                         else Console.WriteLine("Число!");
  425.                                                     }
  426.                                                 } break;
  427.                                             case 2:
  428.                                                 {
  429.                                                     num = Convert.ToInt16(input);
  430.                                                     while (tttemp == false)
  431.                                                     {
  432.                                                         inp = Console.ReadLine();
  433.                                                         if (int.TryParse(inp, out num))
  434.                                                         {
  435.                                                             tttemp = true;
  436.                                                             tempp++;
  437.                                                             x.SetFDay(tempp, num);
  438.                                                             x.FMonth = x.Month;
  439.                                                             x.FYear = x.Year;
  440.                                                         }
  441.                                                         else Console.WriteLine("Введите, пожалуйста,число!");
  442.                                                     }
  443.                                                 } break;
  444.                                         }
  445.  
  446.                                     }
  447.                                     else Console.WriteLine("Введите, пожалуйста,число!");
  448.                                 }
  449.                             } break;
  450.                     }
  451.                 }
  452.                 else
  453.                 {
  454.                     Console.WriteLine("1, 2 или 3");
  455.                 }
  456.             }
  457.             Console.WriteLine("Итоговая дата:\n" + (x.getFDay()) + "." + (x.getFMonth()) + "." + (x.getFYear()));  
  458.             Console.ReadLine();
  459.  
  460.         }
  461.     }
  462. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement