Имя: Пароль:
1C
 
Разность дат
0 Sasha_uu
 
06.12.10
12:00
Есть две даты
например 01.01.2000 и 06.12.2010
как узнать разницу двух дат в виде кол. лет, кол.месяцев, кол. дней.

06.12.2010 - 01.01.2000 = 10лет 11 месяцев 5 дней.
1 Irbis
 
06.12.10
12:01
три раза разность дат вызывай с разными параметрами и обрабатывай
2 IronDemon
 
06.12.10
12:01
В запросе или в коде?
3 Mitriy
 
06.12.10
12:03
Функция РАЗНОСТЬДАТ
Функция предназначена для получения разницы между двумя датами.

Первый параметр — выражение типа ДАТА;

Второй параметр — выражение типа ДАТА;

Третий параметр – тип разности, одно из: СЕКУНДА, МИНУТа, ЧАС, ДЕНЬ, МЕСЯЦ, КВАРТАЛ, ГОД.

Примеры:
ВЫБРАТЬ РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 10, 12, 10, 15, 34), ДАТАВРЕМЯ(2002, 10, 14, 9, 18, 06), ДЕНЬ)

Результат:

Поле1

2
4 Sasha_uu
 
06.12.10
12:04
Хочу это сделать в запросе.

Пишу разностьдат(дата1, дата2, год) = 10
    разностьдат(дата1, дата2, месяц) = 1200
    разностьдат(дата1, дата2, день) = 6800

но мне нужно в другом формате
5 Ненавижу 1С
 
гуру
06.12.10
12:04
(2) в коде сводится к запросу вполне
6 Irbis
 
06.12.10
12:04
(4) А поделить и взять остаток уже не судьба?
7 Sasha_uu
 
06.12.10
12:05
(6) как его поделить?
8 Mitriy
 
06.12.10
12:06
(7)+ и где взять остаток...
9 mikecool
 
06.12.10
12:06
разностьдат(дата1, дата2, год) - в годах
разностьдат(дата1 - 86400 * 360 * разностьдат(дата1, дата2, год), дата2, месяц) - в месяцах
разностьдат(дата1 - <разность в годах> - <разность в месяцах>, дата2, день) - в днях

зы: наврал наверное )
10 Sasha_uu
 
06.12.10
12:08
(9) не подходит такой вариант
потомучто в одном году может быть 365 дней или 364 дня
11 mikecool
 
06.12.10
12:09
(10) смотря для чего...
для стажа полный год = 360 дней
12 Mitriy
 
06.12.10
12:09
(7) вообще в твоем случае, наверное, удобнее будет открыть для себя:

СП - Содержание - Общее описание встроенного языка - Встроенные функции - Функции работы со значениями типа Дата
13 Ненавижу 1С
 
гуру
06.12.10
12:11
ВЫБРАТЬ
   РАЗНОСТЬДАТ(&Дата1, &Дата2, ГОД) КАК Годы,
   РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(&Дата1, ГОД, РАЗНОСТЬДАТ(&Дата1, &Дата2, ГОД)), &Дата2, МЕСЯЦ) КАК Месяцы,
   РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(&Дата1, МЕСЯЦ, 12 * РАЗНОСТЬДАТ(&Дата1, &Дата2, ГОД) + РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(&Дата1, ГОД, РАЗНОСТЬДАТ(&Дата1, &Дата2, ГОД)), &Дата2, МЕСЯЦ)), &Дата2, ДЕНЬ) КАК Дни
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший