|
вычесть месяца
Михаил Козлов, _alex1974, Волшебник, Fedor-1971, arsik, comp2006, Dotoshin, Гость из Мариуполя, Prog_man, Dedal, mikecool, obs191, Elf_80_lvl, ALCAPONA, kvark5d, zenik, CepeLLlka, okmail, DiMel_77, Масянька, dedmoroz777, AlexKimp, Шурик71, KJlag, PuhUfa, Tarlich, Доминошник, viraboy, d4rkmesa, rozz, Кирпич, Seriy_Volk, ass1c, Бычье сердце, mmg, Jackman, b_ru, АгентБезопаснойНацио, LRK, ads55, yurikmellon2, Rovan, Mr_Boogie, Ненавижу 1С, alex73, Timon1405, Saval1986, D3O, Nst, laeg, TStan, Мультук, Pprog151713, Homer, maxab72, FormatC, Krendel, igouranga, RVN, программистище, Джордж1, Builder, новичекВ1С, nick86, kir-g, alexela, rbcvg, DimR_71, takefive, Lama12, backfire, Многолетний Апельсин, boozin, SleepyHead, Asmody, formista2000, qwerty, vbus, Kongo2019, Никита М, Забияка, El_Duke, 2S, Gucci76, scanduta, Буковка, _Batoo
| ☑ |
0
Nst
naïve
16.01.25
✎
13:02
|
Здравствуйте всем. пожалуйста, подскажите
ситуация такая - нужно вычесть месяца
МояПеременная = Месяц(Выборка.ДатаПоказания) - Месяц(Выборка.ДатаПредыдущегоПоказания);
например, моя переменная = месяц(15.01.25) - месяц(04.09.24)
равно -8, но по факту прошло же 3 месяца, а не 8.
как сделать правильный расчет, подскажите?
|
|
1
Волшебник
16.01.25
✎
13:03
|
РазницаМес = (ДатаПоказания - ДатаПредыдущегоПоказания) / 86400 / 30;
|
|
2
Буковка
16.01.25
✎
13:04
|
(0) выспользуйтесь отладкой и пропишите условие на случай, если одна/обе даты не заполнены
|
|
3
arsik
16.01.25
✎
13:07
|
(0)(1) РазницаМес = (Год(ДатаПоказания)*12 + Месяц(ДатаПоказания)) - (Год(ДатаПредыдущегоПоказания)*12 + Месяц(ДатаПредыдущегоПоказания))
|
|
4
Fedor-1971
16.01.25
✎
13:08
|
(0) Если уже использованы запросы, то РазностьДат(ххх, ууу, Месяц) - и не парься
|
|
5
Волшебник
16.01.25
✎
13:11
|
(3) или так
|
|
6
KJlag
16.01.25
✎
13:20
|
РазницаСек = ДатаПоказания - ДатаПредыдущегоПоказания;
РасчетнаяДата = Дата(1,1,1,0,0,0) + РазницаСек;
РазницаМес = (Год(РасчетнаяДата)-1)*12 + Месяц(РасчетнаяДата);
|
|
7
Ненавижу 1С
16.01.25
✎
13:30
|
МояПеременная = (Год(Выборка.ДатаПоказания) - Год(Выборка.ДатаПредыдущегоПоказания))*12 + Месяц(Выборка.ДатаПоказания) - Месяц(Выборка.ДатаПредыдущегоПоказания)
|
|
8
Asmody
16.01.25
✎
13:37
|
(0) (7) сколько месяцев прошло между 29.02.2024 и 28.02.2023?
|
|
9
Михаил Козлов
16.01.25
✎
13:41
|
(7) Ещё от дней даты зависит. Для (0): (2025-2024)*12+1-9=4, а полных месяцев 3.
|
|
10
Elf_80_lvl
16.01.25
✎
13:50
|
(0) Функция месяц(Дата) возвращает номер месяца из даты.
Поэтому и получается:
месяц(15.01.25) = 1
месяц(04.09.24) = 9
Ну и разница 8
А то что тебе нужно (1) или (3)
|
|
11
Волшебник
16.01.25
✎
13:49
|
(10) разница "-8"
|
|
12
Ненавижу 1С
16.01.25
✎
13:56
|
(8) а сколько между 31.12.24 и 01.01.25?
|
|
13
Волшебник
16.01.25
✎
14:02
|
(12) где-то от 0 до 1, точнее 0,033(3)
|
|
14
Ненавижу 1С
16.01.25
✎
14:06
|
(13) чтобы начать говорить о точном значении надо определиться с единицей измерения "месяц", а это очень неоднозначно
|
|
15
arsik
16.01.25
✎
14:17
|
Судя по контексту, показания числятся в том месяце, в котором поданы. Тем более у нас например показания с 15 по 25 принимают.
|
|
16
Nst
naïve
16.01.25
✎
14:21
|
спасибо, помог (1)
этот вариант подходящий, т.к получается на моем примере, что между сентябрем и январем прошло 3 месяца (октябрь, ноябрь, декабрь)
|
|
17
arsik
16.01.25
✎
14:25
|
(16) Вообще то 4 месяца. если уж так
09-10 - 1 месяц
10-11 - 1 месяц
11-12 - 1 месяц
12-01 - 1 месяц
|
|
18
Волшебник
16.01.25
✎
14:24
|
(16) 🤦 но моя формула выдаёт 4,43
|
|
19
Fedor-1971
16.01.25
✎
14:40
|
(16) Что есть Выборка из "Выборка.ДатаПоказания"? Если результат запроса, то сразу подготовь как в (4), будет ещё одно поле, например, РазностьДат(Таб.ДатаПредыдущегоПоказания, Таб.ДатаПоказания, Месяц) КАК КолМесяцев (вместо Таб подставь что там у тебя в запросе)
И пустые даты сможешь обработать там же
|
|
20
Михаил Козлов
16.01.25
✎
15:20
|
(17) 12-01 - неполный месяц. Формально 0.
|
|
21
KJlag
16.01.25
✎
15:24
|
(20) учитывая что там 15.01.25 и 04.09.24, то 12-01 - полный месяц, а вот 01-02 не полный и с 05.01 по 15.01 - откидываем
|
|
22
Михаил Козлов
16.01.25
✎
17:25
|
(21) А с 04.09.2024 по 30.09.2024 тоже нужно откинуть?
|
|