![]() |
![]() |
![]() |
|
Разность дат в годах | ☑ | ||
---|---|---|---|---|
0
denk
09.09.25
✎
11:22
|
Помогите, пожалуйста, разобраться в следующей ситуации. Есть две даты: 01.09.2025 и 29.10.2024. В запросе РАЗНОСТЬДАТ(&Дата1, &Дата2, ГОД) возвращает 1. А мне надо посчитать количество лет, как разницу между двумя этими датами, желательно, в запросе. В данном случае, количество лет должно быть равно 0. Отнимать 1 от результата тоже не вариант, т.к. в определенных ситуациях считается неправильно. Может, есть какие функции в общих модулях?
|
|||
1
Mankubus
09.09.25
✎
11:31
|
Получить разность дат в днях, разделить на количество дней и округлить до целого
|
|||
2
lEvGl
гуру
09.09.25
✎
11:34
|
(1) для точности можно в секундах
правда в разных годах разное количество что секунд что дней |
|||
3
maxab72
09.09.25
✎
11:37
|
РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ТоварыНаБухтах.Бухта.ДатаИзготовления, ГОД), НАЧАЛОПЕРИОДА(ТоварыНаБухтах.Регистратор.Дата, ГОД), ГОД)
есть железное правило, всегда сравнивать объекты только одного типа, а значит перед сравнением переводить в один тип. |
|||
4
программистище
09.09.25
✎
11:40
|
Может тогда в месяцах кратно 12?
|
|||
5
программистище
09.09.25
✎
11:41
|
(3) для периода в 1 месяц получим разницу в год, если по разные стороны от 1 января
|
|||
6
maxab72
09.09.25
✎
11:46
|
(5) Приводи типы к единообразию:
РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ДАТАВРЕМЯ(2024, 12, 15), МЕСЯЦ), НАЧАЛОПЕРИОДА(ДАТАВРЕМЯ(2025, 01, 15), МЕСЯЦ), МЕСЯЦ) Ответ 1 |
|||
7
KJlag
09.09.25
✎
11:48
|
(6) полный год не прошел.
в (0) он просит чтобы тут был 0. он же привел пример с 01.09.2025 и 29.10.2024 |
|||
8
Гена
гуру
09.09.25
✎
11:55
|
(6) Сколько раз талдычить, что месяцы анизотропны. Нельзя их вычитать, только прибавлять по стреле времени от прошлого в будущее.
Надо в цикле просто добавлять год к Дата1, ну и счётчик (как раз лет), пока Дата1Новая не превысит Дата2. Точнее: Дата1Новая = ДобавитьМесяц(Дата1Новая, 12); |
|||
9
Гена
гуру
09.09.25
✎
12:03
|
Единственно дописать веточку для Романова дня как Дата1.
|
|||
10
dmt
09.09.25
✎
12:17
|
(0)
https://www.perplexity.ai/search/pomogite-pozhaluista-razobrats-vUvLlLawS9C0YgBCnBCXAg в запросе по той же логике |
|||
11
Сергиус
09.09.25
✎
13:06
|
(6)РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ДАТАВРЕМЯ(2024, 12, 15), МЕСЯЦ), НАЧАЛОПЕРИОДА(ДАТАВРЕМЯ(2026, 01, 15), МЕСЯЦ), ДЕНЬ) - лучше в днях считать, хотя для високостных годов могут быть нюансы.
|
|||
12
denk
09.09.25
✎
13:06
|
Всем спасибо. В (10) мощный инструмент, конечно. AI набирает обороты.
|
|||
13
Lama12
09.09.25
✎
13:13
|
(12) 28 феврали обычного года и 28 февраля високосного года, год прошел или нет?
|
|||
14
denk
09.09.25
✎
13:30
|
(13) Для данной задачи - год прошел. Если заказчик не скажет обратного. Задача - посчитать количество лет, которое ТМЦ лежит на складе после покупки.
|
|||
15
ptiz
09.09.25
✎
13:35
|
(14) Считай месяцы и дели на 12
|
|||
16
Волшебник
09.09.25
✎
13:36
|
(14) Дней / 365
|
|||
17
lEvGl
гуру
09.09.25
✎
14:11
|
надо думать, что с днями, как и с годами, могут быть неточности
Выбрать РазностьДат(ДатаВремя(2025, 2, 2, 23, 59, 59), ДатаВремя(2025, 2, 3), День) = 1 |
|||
18
spiller26
09.09.25
✎
14:31
|
(16)
ВЫБРАТЬ ВЫБОР КОГДА РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(&Дата, ГОД), КОНЕЦПЕРИОДА(&Дата, ГОД), ДЕНЬ) = 364 ТОГДА "Не високосный" ИНАЧЕ "Високосный" КОНЕЦ КАК ПолеВысокосность |
|||
19
crotnn
09.09.25
✎
14:33
|
(0) Если в запросе, то
ВЫБОР КОГДА &ДатаОкончания > ДОБАВИТЬКДАТЕ(&ДатаНачала, МЕСЯЦ, 12 * РАЗНОСТЬДАТ(&ДатаНачала, &ДатаОкончания, ГОД)) ТОГДА РАЗНОСТЬДАТ(&ДатаНачала, &ДатаОкончания, ГОД) ИНАЧЕ РАЗНОСТЬДАТ(&ДатаНачала, &ДатаОкончания, ГОД) - 1 КОНЕЦ КАК ПолныхЛет (14) Только считает именно полные года, т.е. 28.02.23-28.02.24 - год не прошел. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |