![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Имеется код на JavaScript-е. Никак не могу сообразить как его перегнать в Дельфи - помогайте.
Код:
function GetLastSunday(year, month) {
var day = new Date();
day.setFullYear(year, month, 31);
day.setHours(2,0,0,0);
var daysunday = day.getDate() - day.getDay();
day.setDate(daysunday);
return day;
} |
|
#2
|
||||
|
||||
|
Если я правильно понял, то функция должна вернуть последнее воскресенье месяца в заданном году, как дату?
Тогда так можно: Код:
function GetLastSunday(Year: Integer; Month: Integer): TDate; begin try Result := EncodeDayOfWeekInMonth(Year, Month, 5, 7); except Result := EncodeDayOfWeekInMonth(Year, Month, 4, 7); end; end; |
| Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
angvelem (23.11.2013)
| ||
|
#3
|
||||
|
||||
|
Спасибо, а то уже замучился шерстить DateUtils, в поисках чего-либо подходящего.
|
|
#4
|
||||
|
||||
|
Цитата:
Код:
function GetLastSunday(year, month: Integer): TDateTime; begin Result := IncMonth(EncodeDate(year, month, 1)); // Вычисляем дату первого числа следующего месяца Result := Result - DayOfTheWeek(Result); // и отнимаем от него номер дня недели на которое оно приходится end; p.s. Единственно смущает непонятная строка "day.setHours(2,0,0,0);" в исходнике на JavaScript. |
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
angvelem (23.11.2013)
| ||
|
#5
|
||||
|
||||
|
Пришлось переключиться на Chrome, Explorer отказался открывать тему.
to poli-smen, Вот и меня это смущает, но пока оставлю как есть. |
|
#6
|
||||
|
||||
|
JavaScript ещё та фигня, код после перевода значительно уменьшился и данная функция вообще оказалась не нужна.
|