Путь разработчика    

Как найти пятницу тринадцатое в C#

eda2480d

Python

Код сначала очищает результат ListBox. Затем он получает даты начала и окончания и использует их для получения номеров начала и конца года.

Далее программа выполняет цикл между начальным и конечным годами включительно. За каждый год код перебирается через месяц с номерами от 1 до 12. Для каждого месяца код создает объект DateTime, представляющий 13-е число месяца в данном году.

Если дата предшествует выбранной дате начала, код использует оператор continue, чтобы пропустить оставшуюся часть цикла месяца и продолжить со следующего месяца. Это может произойти до 11 раз (если начальный месяц - декабрь).

Если дата указана после конечной даты, код использует инструкцию break для выхода из цикла месяца. Это происходит не один раз в течение последнего года, поэтому цикл года также заканчивается в этот момент. (Это не произойдет вообще, если конечный месяц - декабрь.)

Наконец, если код все еще запущен в цикле, он проверяет свойство DayOfWeek даты тестирования, и добавляет его в результат ListBox, если это пятница.

Эта программа довольно проста (и, возможно, не очень полезна для бизнес-приложений), но демонстрирует два важных метода.

Во-первых, когда программа получает даты начала и окончания, она явно принимает только часть даты выбранных значений DateTime. Если вы сравниваете переменные DateTime, и вы не заинтересованы в части времени, вам все равно нужно знать эту часть. Если код использует значение, выбранное DateTimePicker или каким-либо другим элементом управления, вам может потребоваться удалить временную часть, чтобы получить правильные результаты.

В этом примере предположим, что время, выбранное dtpStart, - пятница 13 июня 2014 года в 13:30:00. Когда код повторяется через месяцы, код учитывает дату 13 июня 2014 года, но когда вы инициализируете объект DateTime, время опускается, поэтому по умолчанию оно равно 00:00:00. test_date \& gt; end_date считает, что дата теста перед датой начала 13:30:00, поэтому она пропускает эту дату.

Программа исправляет эту проблему, используя только дату даты начала и окончания. (Обратите внимание, что эта проблема может привести к возникновению связанной проблемы: тщательное тестирование. В этом примере вы можете найти эту проблему, протестировав программу с датой начала и окончания, которая находится в пятницу тринадцатых.)

Источник: http://csharphelper.com/blog/2017/08/find-friday-the-thirteenths-in-c/



Отзывы (через Facebook):

Оставить отзыв с помощью аккаунта FaceBook:

Найти файлы, которые соответствуют нескольким шаблонам в C#

Метод System.IO.Directory.GetFiles позволяет легко искать файлы в каталоге, соответствующем шаблону. К сожалению, он может искать только файлы, соответству...

25 02 2021 8:45:43

Найдите прошедшее время в годах, месяцах, днях, часах, минутах и секундах в C#

Структура TimeSpan представляет собой прошедшее время. Он имеет Days, Hours, Minutes, Seconds и Milliseconds свойства, которые сообщают вы о времени, проше...

24 02 2021 16:33:23

Что такое литералы в Python?

Литерал - это краткий и легко видимый способ написать значение. Литералы представляют собой возможные варианты примитивных типов для этого языка. Некоторые...

23 02 2021 23:45:14

Преобразование String в Float в C#

В этой статье мы напишем программу C# для преобразования String в Float с использованием метода float.Parse () Вывод: 9,819   Источник: http://www.csh...

22 02 2021 18:34:41


Parse error: syntax error, unexpected ',' in /home/users/9/9165884745/domains/flash-mx.ru/lessons/926.php on line 69