
Даны два целых числа: D (день) и M (месяц), определяющие правильную дату невисокосного года.
Вывести значения D и M для даты, следующей за указанной. решить на VBA

Ответы на вопрос

Ответ:
using System;
public class Program
{
public static void Main()
{
/*Даны два целых числа: D (день) и M (месяц),
определяющие правильную дату невисокосного года. Вывести значения D и M для даты, следующей за указанной. */
int D = Convert.ToInt32(Console.ReadLine());
int M = Convert.ToInt32(Console.ReadLine());
switch (M)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
if (D == 31)
{
Console.WriteLine(D = 1);
Console.WriteLine(M = M + 1);
break;
}
else if (D > 31)
{
Console.WriteLine("Такой даты нет!");
break;
}
else
{
Console.WriteLine(D + 1);
Console.WriteLine(M);
break;
}
case 2:
if (D == 28)
{
Console.WriteLine(D = 1);
Console.WriteLine(M = M + 1);
break;
}
else if (D > 28)
{
Console.WriteLine("Такой даты нет!");
break;
}
else
{
Console.WriteLine(D + 1);
Console.WriteLine(M);
break;
}
case 4:
case 6:
case 9:
case 11:
if (D == 30)
{
Console.WriteLine(D = 1);
Console.WriteLine(M = M + 1);
break;
}
else if (D > 30)
{
Console.WriteLine("Такой даты нет!");
break;
}
else
{
Console.WriteLine(D + 1);
Console.WriteLine(M);
break;
}
case 12:
if (D == 31)
{
Console.WriteLine(D = 1);
Console.WriteLine(M = 1);
break;
}
else if (D > 31)
{
Console.WriteLine("Такой даты нет!");
break;
}
else
{
Console.WriteLine(D + 1);
Console.WriteLine(M);
break;
}
}
}
}
Объяснение:



Для создания VBA макроса, который определяет следующую дату на основе заданных D (день) и M (месяц), вы можете использовать следующий код:
vbaSub СледующаяДата() Dim D As Integer Dim M As Integer ' Задайте значения D и M D = 12 ' Замените на ваш день M = 9 ' Замените на ваш месяц ' Проверка корректности введенных значений If M < 1 Or M > 12 Or D < 1 Or D > DayInMonth(M) Then MsgBox "Введены некорректные значения дня и месяца." Exit Sub End If ' Увеличиваем день на 1 D = D + 1 ' Проверяем, если день стал больше, чем дней в месяце If D > DayInMonth(M) Then D = 1 M = M + 1 ' Проверяем, если месяц стал больше 12 (декабрь), то переходим к январю следующего года If M > 12 Then M = 1 End If End If ' Выводим следующую дату MsgBox "Следующая дата: " & D & "." & M End Sub Function DayInMonth(Month As Integer) As Integer ' Функция, возвращающая количество дней в месяце Select Case Month Case 4, 6, 9, 11 DayInMonth = 30 Case 2 DayInMonth = 28 ' Для невисокосного года Case Else DayInMonth = 31 End Select End Function
Вы можете запустить этот макрос в Excel, и он позволит вам ввести значения D и M, а затем выведет следующую дату. Пожалуйста, замените значения D и M на те, которые вам нужны, и учтите, что этот код не учитывает високосные годы, поэтому для високосных годов 29 февраля не будет обработан.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili