Имя: Пароль:
1C
 
Разность дат
0 roam
 
02.12.08
08:56
Как определить сколько лет, месяцев и дней в промежутке между двумя датами (с учетом високосных годов и т.п.). Например:
19.08.1993 - 10.01.1994  -   5 месяце 22 дня.
12.01.2008 - 25.07.2001  -   1 год 6 месяцев 13 дней
1 Shurjk
 
02.12.08
08:59
Ну это очень сложно. Во первых надо знать что из себя представляет тип Дата. И сколько секунд в днях, месяцах, годах, и какие года бывают високосными...
2 RomaH
 
naïve
02.12.08
08:59
01.01.0001 + (Дата2 - Дата1)

Лет = Год()
Месяцев = Месяц()
Дней = День()

?
3 and2
 
02.12.08
09:03
(0) Запросом
4 roam
 
02.12.08
09:04
(3) без разницы
5 НЕА123
 
02.12.08
09:05
(4) РАЗНОСТЬДАТ (запросом)
6 and2
 
02.12.08
09:07
(4) приводи к началоПериода  месяца и года и разностьюДат считай.
7 НЕА123
 
02.12.08
09:14
в типовых в общих модулях есть такая функция. запросом делал, но оченно сложно.
8 roam
 
02.12.08
09:15
(2) не получается даже на первом примере
(5) разностью дат не получится
(6) что то не пойму чем это поможет
9 roam
 
02.12.08
09:15
(7) ты не помнишь, где в типовой это используется?
10 roam
 
02.12.08
09:17
самая запарка в днях, остальное считается просто....
11 Garkin
 
02.12.08
09:17
12 Serg_1960
 
02.12.08
09:18
В типовой есть необходимый для Вас функционал. Например УПП:
Процедура РазобратьРазностьДат(Дата1, Дата2, Лет = 0, Месяцев = 0, Дней = 0) Экспорт
См. Процедура РазобратьРазностьДат(Дата1, Дата2, Лет = 0, Месяцев = 0, Дней = 0)
Обсуждали в v8: Как посчитать число месяцев между ДатаНачало и ДатаКонца?
13 КуплюКровать
 
02.12.08
09:20
ОбщегоНазначения.РазобратьРазностьДат(ДатаОкончания, ДатаНачала, Лет, Месяцев, Дней) это ЗУП
14 Serg_1960
 
02.12.08
09:21
Имхо: такие процедуры (РазобратьРазностьДат) растиражированы по всем конфам :)
15 Serg_1960
 
02.12.08
09:21
16 dk
 
02.12.08
09:23
дык в чем трабла?
1. Получаешь года - получаешь разницу
2. Получаешь месяцы - получаешь разницу, если разница < 0, то вычитаешь из года 1 и добавляешь к месяцам 12
3. Получаешь дни - получаешь разницу, если разница < 0, то вычитаешь из месяцев 1 и Добавитьмесяц, можно еще раз проверить 2.
17 Serg_1960
 
02.12.08
09:27
(16) Где трабла? Дык она в Вашем алгоритме :)
18 roam
 
02.12.08
09:30
всем спасибо, особенно (12) и (13), помогла процедура РазобратьРазностьДат
19 Cheater
 
02.12.08
09:31
20 dk
 
02.12.08
09:32
(17) точно?
хотя самому лениво проверять