Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace lab4class
- {
- class date
- {
- public int Day, Month, Year, FDay, FMonth, FYear;
- public date()
- {
- Day = 0;
- Month = 0;
- Year = 0;
- FDay = 0;
- FMonth = 0;
- FYear = 0;
- }
- public date(int Day, int Month, int Year, int FDay, int FMonth, int FYear)
- {
- this.Day = Day;
- this.Month = Month;
- this.Year = Year;
- this.FDay = FDay;
- this.FMonth = FMonth;
- this.FYear = FYear;
- }
- public void SetDay(int Day) //Ввод дня
- {
- bool ft = false;
- switch (Month)
- {
- case 2:
- {
- while (ft == false)
- {
- if (!(Day < 1 || Day > 29))
- {
- ft = true;
- this.Day = Day;
- }
- }
- } break;
- case 1:
- case 3:
- case 5:
- case 7:
- case 8:
- case 10:
- case 12:
- {
- while (ft == false)
- {
- if (!(Day < 1 || Day > 31))
- {
- ft = true;
- this.Day = Day;
- }
- }
- }
- break;
- case 4:
- case 6:
- case 9:
- case 11:
- {
- while (ft == false)
- {
- if (!(Day < 1 || Day > 30))
- {
- ft = true;
- this.Day = Day;
- }
- }
- }
- break;
- default: Environment.Exit(0); break;
- }
- }
- public void SetMonth(int Month) //Ввод месяца
- {
- bool ft = false;
- while (ft == false)
- {
- if (!(Month < 1 || Month > 12))
- {
- ft = true;
- this.Month = Month;
- }
- }
- }
- public void SetYear(int Year) //Ввод года
- {
- this.Year = Year;
- }
- public int getDay() //Возвращение дня
- {
- return Day;
- }
- public int getMonth() //Возвращение месяца
- {
- return Month;
- }
- public int getYear() //Возвращение года
- {
- return Year;
- }
- public void SetFYear(int tempp, int num)
- {
- if (tempp > 0)
- {
- this.FYear = Year + num ;
- }
- else this.FYear = Year - num;
- }
- public void SetFMonth(int tempp, int num)
- {
- if (tempp > 0)
- {
- while (Month + num >= 12)
- {
- FYear = Year + 1;
- Year++;
- num -= 12;
- this.FMonth = Month + num;
- }
- this.FMonth = Month + num;
- }
- else
- {
- while (num >= Month + 12)
- {
- FYear=Year - 1;
- Year--;
- num -= 12;
- this.FMonth = Month - num;
- }
- FMonth = Month - num;
- if (FMonth <= 0)
- {
- FMonth = 12 - Math.Abs(FMonth);
- }
- this.FMonth = Month;
- }
- }
- public void SetFDay(int tempp, int num)
- {
- if (tempp > 0)
- {
- while (num + FDay >= 365)
- {
- Year++;
- num -= 365;
- }
- while (num +FDay >= 30)
- {
- Month++;
- num -= 30;
- }
- if (num >= 12)
- {
- num -= 12;
- this.FDay = Day + num;
- }
- else this.FDay = Day + num;
- }
- else
- {
- while (num + FDay >= 365)
- {
- Year--;
- num -= 365;
- }
- while (num >= 30 + Day)
- {
- Month--;
- num -= 30;
- this.FDay = Day - num;
- }
- this.FDay = Day - num;
- }
- }
- public int getFYear()
- {
- return FYear;
- }
- public int getFMonth()
- {
- return FMonth;
- }
- public int getFDay()
- {
- return FDay;
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- bool temp = false, ttemp = false, tttemp = false;
- string input, inp;
- int month = 0, day = 0, year = Int16.MinValue, change = 0,changee = 0, num = 0, tempp = 0;
- date x = new date(); //Блок переменных
- Console.WriteLine("Введите, пожалуйста, месяц: ");
- while (temp == false)
- {
- input = Console.ReadLine();
- if (int.TryParse(input, out month) && (Convert.ToInt16(input) >= 1) && (Convert.ToInt16(input) <= 12))
- {
- temp = true;
- }
- else { Console.WriteLine("Введите, пожалуйста, месяц в числовом формате в диапазоне [1 ; 12]: "); }
- }
- x.SetMonth(month); //Ввод месяца
- Console.WriteLine("Введите, пожалуйста, день: ");
- temp = false;
- while (temp == false)
- {
- input = Console.ReadLine();
- if (int.TryParse(input, out day) && (Convert.ToInt16(input) >= 1) && (Convert.ToInt16(input) <= 31))
- {
- temp = true;
- }
- else { Console.WriteLine("Введите, пожалуйста, день в числовом формате в диапазоне [ 1 ; 31 ]: "); }
- }
- x.SetDay(day); //Ввод дня
- Console.WriteLine("Введите, пожалуйста, год: ");
- temp = false;
- while (temp == false)
- {
- input = Console.ReadLine();
- if (int.TryParse(input, out year))
- {
- temp = true;
- }
- else { Console.WriteLine("Введите, пожалуйста, год в числовом формате: "); }
- }
- x.SetYear(year); //Ввод года
- Console.WriteLine("Введенная дата:\n" + (x.getDay()) + "." + (x.getMonth()) + "." + (x.getYear())); //Вывод введенных даннах
- Console.WriteLine("Хотите ли изменить данные? (Y/N)");
- temp = false;
- while (temp == false)
- {
- input = Console.ReadLine();
- if (input == "Y" || input == "y")
- {
- temp = true;
- }
- else
- if (input == "N" || input == "n")
- {
- Console.WriteLine("Тогда всего доброго! Нажмите enter для выхода..");
- Console.ReadLine();
- Environment.Exit(0);
- }
- else
- {
- Console.WriteLine("Вам требуется ввести лишь Y или N (регистр не имеет значения)..");
- }
- } //Выбор пользователя об изменении даты
- Console.WriteLine("Выберете категорию изменения:\n1.День\n2.Месяц\n3.Год");
- temp = false;
- while (temp == false)
- {
- string m = Console.ReadLine();
- if (int.TryParse(m, out change))
- {
- temp = true;
- switch (change)
- {
- case 3:
- {
- Console.WriteLine("1.Уменьшить\n2.Увеличить");
- while (ttemp == false)
- {
- input = Console.ReadLine();
- if (int.TryParse(input, out changee) && ((Convert.ToInt16(input) == 2) || (Convert.ToInt16(input) == 1)))
- {
- ttemp = true;
- Console.WriteLine("Введите количество лет, на которое изменить");
- switch (changee)
- {
- case 1:
- {
- num = Convert.ToInt16(input);
- while (tttemp == false)
- {
- inp = Console.ReadLine();
- if (int.TryParse(inp, out num))
- {
- tttemp = true;
- tempp--;
- x.SetFYear(tempp, num);
- x.FMonth = x.Month;
- x.FDay = x.Day;
- }
- else Console.WriteLine("Введите, пожалуйста, число!");
- }
- } break;
- case 2:
- {
- num = Convert.ToInt16(input);
- while (tttemp == false)
- {
- inp = Console.ReadLine();
- if (int.TryParse(inp, out num))
- {
- tttemp = true;
- tempp++;
- x.SetFYear(tempp, num);
- x.FMonth = x.Month;
- x.FDay = x.Day;
- }
- else Console.WriteLine("Введите, пожалуйста,число!");
- }
- } break;
- }
- }
- else Console.WriteLine("Введите, пожалуйста,число 1 или 2!");
- }
- } break;
- case 2:
- {
- Console.WriteLine("1.Уменьшить\n2.Увеличить");
- while (ttemp == false)
- {
- input = Console.ReadLine();
- if (int.TryParse(input, out changee) && ((Convert.ToInt16(input) == 2) || (Convert.ToInt16(input) == 1)))
- {
- ttemp = true;
- Console.WriteLine("Введите количество месяцев, на которое изменить");
- switch (changee)
- {
- case 1:
- {
- num = Convert.ToInt16(input);
- while (tttemp == false)
- {
- inp = Console.ReadLine();
- if (int.TryParse(inp, out num))
- {
- tttemp = true;
- tempp--;
- x.SetFMonth(tempp, num);
- x.FDay = x.Day;
- x.FYear = x.Year;
- }
- else Console.WriteLine("Число!");
- }
- } break;
- case 2:
- {
- num = Convert.ToInt16(input);
- while (tttemp == false)
- {
- inp = Console.ReadLine();
- if (int.TryParse(inp, out num))
- {
- tttemp = true;
- tempp++;
- x.SetFMonth(tempp, num);
- x.FDay = x.Day;
- x.FYear = x.Year;
- }
- else Console.WriteLine("Введите, пожалуйста,число!");
- }
- } break;
- }
- }
- else Console.WriteLine("Введите, пожалуйста,число!");
- }
- } break;
- case 1:
- {
- Console.WriteLine("1.Уменьшить\n2.Увеличить");
- while (ttemp == false)
- {
- input = Console.ReadLine();
- if (int.TryParse(input, out changee) && ((Convert.ToInt16(input) == 2) || (Convert.ToInt16(input) == 1)))
- {
- ttemp = true;
- Console.WriteLine("Введите количество дней, на которое изменить");
- switch (changee)
- {
- case 1:
- {
- num = Convert.ToInt16(input);
- while (tttemp == false)
- {
- inp = Console.ReadLine();
- if (int.TryParse(inp, out num))
- {
- tttemp = true;
- tempp--;
- x.SetFDay(tempp, num);
- x.FMonth = x.Month;
- x.FYear = x.Year;
- }
- else Console.WriteLine("Число!");
- }
- } break;
- case 2:
- {
- num = Convert.ToInt16(input);
- while (tttemp == false)
- {
- inp = Console.ReadLine();
- if (int.TryParse(inp, out num))
- {
- tttemp = true;
- tempp++;
- x.SetFDay(tempp, num);
- x.FMonth = x.Month;
- x.FYear = x.Year;
- }
- else Console.WriteLine("Введите, пожалуйста,число!");
- }
- } break;
- }
- }
- else Console.WriteLine("Введите, пожалуйста,число!");
- }
- } break;
- }
- }
- else
- {
- Console.WriteLine("1, 2 или 3");
- }
- }
- Console.WriteLine("Итоговая дата:\n" + (x.getFDay()) + "." + (x.getFMonth()) + "." + (x.getFYear()));
- Console.ReadLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement