Последний день месяца Month_end_date
-
- Сообщения: 338
- Зарегистрирован: 11 сен 2017, 13:42
- Откуда: Санкт-Петербург
Последний день месяца Month_end_date
/*
Function name = Month_end_date
parameter = date;
Evaluates last date of month for any date
*/
Date(Month(any_date)+1; 0; Year(any_date))
Function name = Month_end_date
parameter = date;
Evaluates last date of month for any date
*/
Date(Month(any_date)+1; 0; Year(any_date))
Re: Последний день месяца Month_end_date
я обычно использую такую конструкцию:
потому что использовать нулевой день месяца как-то неинтуитивно
Код: Выделить всё
Date(Month(any_date)+1; 1; Year(any_date))-1
-
- Сообщения: 338
- Зарегистрирован: 11 сен 2017, 13:42
- Откуда: Санкт-Петербург
Re: Последний день месяца Month_end_date
моя функция на два символа короче
Re: Последний день месяца Month_end_date
не спорю. Но тут вопрос читабельности и очевидности кода. У малознакомого с FileMaker разработчика такой код вызовет изумление. 0-ой день месяца - это как, скажет он . Тако можно?! Это фича языка, или баг, который можно использовать как трик? Это точно будет работать в следующих версиях?
Если гнаться за краткостью кода, то надо на C++ тогда писать
-
- Сообщения: 338
- Зарегистрирован: 11 сен 2017, 13:42
- Откуда: Санкт-Петербург
Re: Последний день месяца Month_end_date
эээ, да ладно
когда я копирую себе чужие кастом функции, я вообще не вдаюсь в то, как они работают. Особенно рекурсии, я их вообще не вкуриваю. Работают - и хорошо
Хотя зря, наверное. нужно развивать в себе аналитические способности. Шучу. Не буду я вдаваться, я их заимствую "как есть"
когда я копирую себе чужие кастом функции, я вообще не вдаюсь в то, как они работают. Особенно рекурсии, я их вообще не вкуриваю. Работают - и хорошо
Хотя зря, наверное. нужно развивать в себе аналитические способности. Шучу. Не буду я вдаваться, я их заимствую "как есть"
-
- Сообщения: 338
- Зарегистрирован: 11 сен 2017, 13:42
- Откуда: Санкт-Петербург
Re: Последний день месяца Month_end_date
после этого он устраивает череду экспериментов и обнаруживает, что параметром Date() является любое число, в том числе и отрицательное. Он понимает (принимает) логику файлмейкера и начинает ею пользоваться.У малознакомого с FileMaker разработчика такой код вызовет изумление. 0-ой день месяца - это как, скажет он . Тако можно?!
-
- Сообщения: 338
- Зарегистрирован: 11 сен 2017, 13:42
- Откуда: Санкт-Петербург
Re: Последний день месяца Month_end_date
подумал: может я и не прав. Если новичок не видит очевидной логики построения даты, он может растерять желание экспериментировать и вообще вникать во все это
-
- Сообщения: 106
- Зарегистрирован: 21 сен 2017, 18:48
- Откуда: Минск
Re: Последний день месяца Month_end_date
Оба варианта очень по FileMiker.
В варианте Аркадия подразумевается что 13 месяц это январь следующего.
В справке как раз о двух способах и написано : Можно использовать 0 и негативные числа как аргументы для функций с датами. А если месяц больше 12 или день больше чем количество дней в месяце, FM добавит дополнительное количество дней или месяцев к результату. Интересно, что десятичные числа обрезаются до целых без округления
Например Date( 6 ; 0 ; 2019 ) вернет 31.05.2019
Date( 13 ; 0 ; 2019 ) - вернет 31.12.2018
Date( 1,2 ; 5 ; 2019 ) - вернет 01.05.2019
На мой взгляд работа со временем и датами одна из сильнейших фишек Filemaker,
особенно поиск чего стоит
Пн *.01..03.2018 -- все понедельники первого квартала 2018 года - взять и отменить
Пн *.01.2018... *.03.2018 -- то же самое
И еще что звездочку вообще можно не указывать 05.2018 -- май 2018
в поле поиска 2018..2019 все даты с этими годами
или в диапазоне
-- начало недели
-- с семи пятнадцати до девяти пятнадцати
В варианте Аркадия подразумевается что 13 месяц это январь следующего.
В справке как раз о двух способах и написано : Можно использовать 0 и негативные числа как аргументы для функций с датами. А если месяц больше 12 или день больше чем количество дней в месяце, FM добавит дополнительное количество дней или месяцев к результату. Интересно, что десятичные числа обрезаются до целых без округления
Например Date( 6 ; 0 ; 2019 ) вернет 31.05.2019
Date( 13 ; 0 ; 2019 ) - вернет 31.12.2018
Date( 1,2 ; 5 ; 2019 ) - вернет 01.05.2019
На мой взгляд работа со временем и датами одна из сильнейших фишек Filemaker,
особенно поиск чего стоит
Пн *.01..03.2018 -- все понедельники первого квартала 2018 года - взять и отменить
Пн *.01.2018... *.03.2018 -- то же самое
И еще что звездочку вообще можно не указывать 05.2018 -- май 2018
в поле поиска 2018..2019 все даты с этими годами
Код: Выделить всё
3.*.2019
2.*
2019 *:30 PM
Код: Выделить всё
12:30...17:30 -- время с ..по ..
1.1.2019..6.6.2020 -- дата с ... по ...
Пн..Вт
Код: Выделить всё
{1...15}.7.2019 - первая половина июля
{10..16}.1..3.2020 -- первая половина месяцев первого квартала
12:{30..45} -- третья четверть часа
{7...9}:15 PM
-
- Сообщения: 338
- Зарегистрирован: 11 сен 2017, 13:42
- Откуда: Санкт-Петербург
Re: Последний день месяца Month_end_date
Алексей,
не отважитесь на статью "Как работать с датами и временем в файлмейкере"?
Суть, примеры, разные ситуации...
Это будет очень полезно для всех нас.
не отважитесь на статью "Как работать с датами и временем в файлмейкере"?
Суть, примеры, разные ситуации...
Это будет очень полезно для всех нас.
-
- Сообщения: 106
- Зарегистрирован: 21 сен 2017, 18:48
- Откуда: Минск
Re: Последний день месяца Month_end_date
Андрей, можно попробовать. Надо пообщаться в личку