bobdetroit81 Ответов: 1

Visual basic: как подсчитать годы, в течение которых определенная дата приходится на один и тот же день недели?


Я хотел бы создать форму visual basic с текстовым полем, в которое будет введена дата. При нажатии кнопки все годы будут вставлены в метку, где введенная дата находится в один и тот же день недели.
Например, дата 4 мая в каком из следующих 100 лет приходится на понедельник?
Я совсем запутался в этой петле.

Что я уже пробовал:

Тусклая дата рождения как дата
Тусклый последний год как дата = дата рождения.AddYears(100)

Делать, пока деньрождения &ЛТ;= в прошлом году
дата рождения = Дата рождения.AddDays(1)


Петля

1 Ответов

Рейтинг:
1

MadMyche

1. Получить День рождения от TextBox.
2. Создайте переменную для хранения DayOfWeek с самого дня рождения.
3. Теперь войдите в свою петлю....
4. Проверьте День недели свойство и сравните с тем, что вы сохранили в своей переменной.
5. Добавьте год
6. Закройте петли


Ссылка на день недели:
значение datetime.Свойство DayOfWeek (Система) | Microsoft Docs[^]


Richard Deeming

Не забывая проявлять особую осторожность, если дата назначена на 29 февраля, так как AddYears(1) вернется 28 февраля на следующий год. :)

bobdetroit81

Я создал следующий код:
Дим дата рождения как дата = поле textbox2.Текст
Dim a As Integer = дата рождения.День недели

Тусклый последний год как дата = дата рождения.AddYears(100)
Тусклый отсчет как целое число

Делать, пока деньрождения &ЛТ;= в прошлом году
дата рождения = Дата рождения.AddYears(1)
Если дата рождения.DayOfWeek = a тогда
count = count + 1
Список listbox1.Предметы.Добавить(дата рождения.Год)
Конец, Если
Петля


Я проверил его, он работает. Потом я прочитал ваш комментарий. Я проверил, что происходит, если день рождения приходится на 2/29...Тогда я понял ваш комментарий, и теперь я в замешательстве... :(

MadMyche

Ну что ж... сейчас самое время для анекдота. исполнительное решение о том, что следует сделать для этого особого случая, а затем соответствующим образом перекодировать