По введенной дате определить дату следующего дня - C#
Формулировка задачи:
. По введенной дате определить дату следующего дня.
Указание. Известно, что дата состоит из дня, месяца и года. Например, для даты 19.10.86 следующим днем будет 20.10.86. Необходимо учесть число дней в месяце для перехода от одного месяца к следующему.
Например:
Текущий день Следующий день
31.12.1985 01.01.1986
29.04.1986 30.04.1986
30.04.1986 01.05.1986
28.02.1988 29.02.1988
28.02.1987 01.03.1987
в C#
Решение задачи: «По введенной дате определить дату следующего дня»
textual
Листинг программы
- using System;
- namespace ConsoleApplication21 {
- class Program {
- static void Main(string[] args) {
- Console.Write("Укажите три целых числа: Y(год), M (месяц) и D (день), определяющие правильную дату.\n\tY (год) - ");
- try {
- int y = int.Parse(Console.ReadLine());
- if(y<0) throw new ArgumentException("Год не может быть отрицательным");
- Console.Write("\tM (месяц 1-12) - ");
- int m = int.Parse(Console.ReadLine());
- if (m < 1 || m > 12) throw new ArgumentException("Номер месяца должен быть в диаппазоне 1-12");
- //Масив количества дней в месяце
- int[] mD = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
- //Уточнение, если год високосный
- if (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0))
- mD[1] = 29;
- Console.Write("\tD (день 1-{0}) - ",mD[m-1]);
- int d = int.Parse(Console.ReadLine());
- if (d < 1 || d > mD[m - 1]) throw new ArgumentException("В месяце №" + m + " " + y + " года, число может быть только в диаппазоне 1-" + mD[m - 1]);
- if (d != mD[m - 1])
- d++;
- else if (m != 12) {
- d = 1;
- m++;
- } else {
- d = m = 1;
- y++;
- }
- Console.WriteLine("Следующим денем является {0:d4}-{1:d2}-{2:d2}", y, m, d);
- } catch (Exception ex) {
- Console.WriteLine(ex.Message);
- }
- Console.ReadLine();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д