Я пытался написать конвертер вашего часового пояса, и мне нужно было определить, какой был последний день месяца. После некоторых исследований я обнаружил формулы для поиска високосного года.Вопросы и ответы: Как узнать, что такое последний день месяца?
Это небольшой вклад, но, возможно, я спасу кого-то еще за 20 минут, которые потребовались мне, чтобы выяснить и применить его.
Этот код принимает подписанный короткий месяц с индексом 0 (0 - январь) и int year, который также индексируется как 0 (2012 - 2012).
Он возвращает 1 проиндексированный день (27-е место 27-го, но в структурах SYSTEMTIME и т. Д. Вам обычно нужно индексировать 0 - только голова вверх).
'если (! Год% 4 == 0 && год% 400 = 0) вернуться 29 еще вернуться 28' является более емким способом чтобы выразить это, я думаю. – john
@john Кратко, но неправильно. –
@AlexeyFrunze Пожалуйста, предоставьте пример коррекции или счетчика. – john