|
Как получить количество месяцев между датами с дробной частью | ☑ | ||
---|---|---|---|---|
0
VAVANSTR
24.01.19
✎
16:09
|
Как получить количество месяцев между датами с дробной частью
|
|||
1
gantonio
24.01.19
✎
16:10
|
уга-га.
|
|||
2
VAVANSTR
24.01.19
✎
16:10
|
То есть 4,8 месяца, или 5,73 месяца, или 4,56...
|
|||
3
gantonio
24.01.19
✎
16:10
|
90 дней это 3 месяца , а 92 дня ?
|
|||
4
Гад
24.01.19
✎
16:11
|
(3) ну собчак на выборах считала что это три месяца
|
|||
5
gantonio
24.01.19
✎
16:14
|
(4) я, честно говоря не знаю, что там у нее было, но я знаю как люди путают 90 дней и 3 месяца, а потом удивляются возникшей ошибке из за этого.
|
|||
6
Eiffil123
24.01.19
✎
16:16
|
(4) а в ЗУПе вообще начисляют 2.33 дня отпуска за месяц. И никто не жалучется
|
|||
7
mikecool
24.01.19
✎
16:21
|
(0) год(), месяц() в помощь
|
|||
8
BeerHelpsMeWin
24.01.19
✎
16:22
|
Не совсем понятно, что ТС имеет в виду, но одна из версий будет такой:
ЧислоДнейВПервомМесяце/ВсегоДнейВПервомМесяце+ КоличествоПолныхМесяцев+ ЧислоДнейВПоследнемМесяце/ВсегоДнейВПоследнемМесяце например, для периода с 30.01 по 25.06 это будет 2/31+4+25/30 |
|||
9
BeerHelpsMeWin
24.01.19
✎
16:24
|
Если, конечно, его по каким-то причинам не устраивает РазностьДатВДнях*365/12 или РазностьДатВДнях*366/12
|
|||
10
BeerHelpsMeWin
24.01.19
✎
16:24
|
(9)
Поделить, конечно, не умножить. |
|||
11
Eiffil123
24.01.19
✎
16:28
|
(9) в (8) более точная формула.
|
|||
12
VAVANSTR
24.01.19
✎
16:54
|
Функция ПолучитьКоличествоМесяцевМеждуДвумяДатами(НачалоПериода, КонецПериода) Экспорт
//Возвращает дробное значение месяцев Запрос = Новый Запрос("ВЫБРАТЬ | РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, МЕСЯЦ) КАК КоличествоМесяцев"); Запрос.УстановитьПараметр("НачалоПериода" , НачалоПериода); Запрос.УстановитьПараметр("КонецПериода" , КонецПериода); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); КоличествоМесяцев = Выборка.КоличествоМесяцев; НомерНачальногоМесяца = Месяц(НачалоПериода); НомерНачальногоДняВМесяце = Число(Сред(СокрЛП(НачалоПериода),1,2)); ПрибавитьЧастьМесяца = 0; Если НомерНачальногоМесяца = 1 Тогда ПрибавитьЧастьМесяца = (31 - (НомерНачальногоДняВМесяце-1))/31; ИначеЕсли НомерНачальногоМесяца = 2 Тогда ДнейГод = ДеньГода(КонецГода(НачалоПериода)); Если ДнейГод = 365 Тогда ПрибавитьЧастьМесяца = (28 - (НомерНачальногоДняВМесяце-1))/28; Иначе ПрибавитьЧастьМесяца = (29 - (НомерНачальногоДняВМесяце-1))/29; КонецЕсли; ИначеЕсли НомерНачальногоМесяца = 3 Тогда ПрибавитьЧастьМесяца = (31 - (НомерНачальногоДняВМесяце-1))/31; ИначеЕсли НомерНачальногоМесяца = 4 Тогда ПрибавитьЧастьМесяца = (30 - (НомерНачальногоДняВМесяце-1))/30; ИначеЕсли НомерНачальногоМесяца = 5 Тогда ПрибавитьЧастьМесяца = (31 - (НомерНачальногоДняВМесяце-1))/31; ИначеЕсли НомерНачальногоМесяца = 6 Тогда ПрибавитьЧастьМесяца = (30 - (НомерНачальногоДняВМесяце-1))/30; ИначеЕсли НомерНачальногоМесяца = 7 Тогда ПрибавитьЧастьМесяца = (31 - (НомерНачальногоДняВМесяце-1))/31; ИначеЕсли НомерНачальногоМесяца = 8 Тогда ПрибавитьЧастьМесяца = (31 - (НомерНачальногоДняВМесяце-1))/31; ИначеЕсли НомерНачальногоМесяца = 9 Тогда ПрибавитьЧастьМесяца = (30 - (НомерНачальногоДняВМесяце-1))/30; ИначеЕсли НомерНачальногоМесяца = 10 Тогда ПрибавитьЧастьМесяца = (31 - (НомерНачальногоДняВМесяце-1))/31; ИначеЕсли НомерНачальногоМесяца = 11 Тогда ПрибавитьЧастьМесяца = (30 - (НомерНачальногоДняВМесяце-1))/30; ИначеЕсли НомерНачальногоМесяца = 12 Тогда ПрибавитьЧастьМесяца = (31 - (НомерНачальногоДняВМесяце-1))/31; КонецЕсли; КоличествоМесяцев = КоличествоМесяцев + ПрибавитьЧастьМесяца; Возврат КоличествоМесяцев; КонецФункции |
|||
13
VAVANSTR
24.01.19
✎
16:56
|
Примерно такая функция, только тут надо доработать условие по конечной дате, если она например в середине месяца
|
|||
14
Вафель
24.01.19
✎
17:03
|
|
|||
15
gantonio
24.01.19
✎
17:11
|
Дробная часть образуется из отношения одинаковых величин. Т.е. дробная часть месяца это например 12/24 = 0,5 или 24/12 = 2.
Никакого дробного отношения при измерении количества месяцев в интервале дат не бывает. Там лишь число полных месяцев и количество дней. Это конечно занудство, но вы реально на пути к ошибке. |
|||
16
МихаилМ
24.01.19
✎
20:55
|
(15) +10000000
|
|||
17
palsergeich
24.01.19
✎
20:58
|
(0) Получить ТЗ от методолога или заказчика как именно в Вашем случае идет расчет дробной части, желательно на бумажном носителе. Ньюансов можно напридумывать.
|
|||
18
palsergeich
24.01.19
✎
21:04
|
Ибо есть методологии месяц как 30 дней и год как 360.
И там ДобавитьМесяц не спасет |
|||
19
Сияющий в темноте
24.01.19
✎
21:16
|
год это 365.26 дней,а месяц,если поделить это число на 12.
для того,чтобы показать людям,эти числа годятся,но в реальности,у вас февраль и еще один день будет меньше месяца,а июль и август-больше. если хочется делать какие то расчеты,то или по сумме в день и на количество дней или расчетный месяц в 30 дней. |
|||
20
Fram
24.01.19
✎
21:21
|
(17)+1 спроси какой результат будет для 01.02.2019-01.03.2019 и для 01.02.2020-01.03.2020
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |