![]() |
![]() |
![]() |
|
Как вычислить количество дней между датами. | ☑ | ||
---|---|---|---|---|
0
vlad71
15.05.06
✎
11:42
|
В 1С 7.7. можно было просто узнать количество дней как Дата1-Дата2
Посдкажите как это делается в 1С 8.? Необходимо узнать количество дней например с 11 января 2006 года по 18 мая 2006 года. Формат Даты "Дата и время". |
|||
1
ТелепатБот
гуру
15.05.06
✎
11:42
|
||||
2
avmlvm
15.05.06
✎
11:44
|
Арифметические операции с датами
При вычислении разницы между датами результат - это количество СЕКУНД между ними. Для вычисления разницы в СУТКАХ нужно количество секунд разделить на 86400 (т.е. 24*60*60). Для получения разницы в рабочих днях нужно завести календарь (регистр сведений) и отсчитывать дни по нему. При сложении/вычитании даты и какого-то числа оно рассматривается как количество СЕКУНД. |
|||
3
vlad71
15.05.06
✎
11:52
|
понял, спасибо.
|
|||
4
ЗабылПароль
15.05.06
✎
11:52
|
КоличествоДней = День(ДатаНач) - День(ДатаКон)
|
|||
5
Волшебник
модератор
15.05.06
✎
11:54
|
(4) Да, смешно.
|
|||
6
and2
15.05.06
✎
11:56
|
(5)Грустно.
|
|||
7
Bazooka
15.05.06
✎
12:10
|
(0) КоличествоДней = (НачалоДня(Дата1)-НачалоДня(Дата2))/86400;
|
|||
8
LOD
15.05.06
✎
12:23
|
(4) (7) А если между днями разница в 2 года ?
Что получим ? ;) |
|||
9
ЗабылПароль
15.05.06
✎
12:27
|
+ (4) у меня с годами так получалось Год(ДатаКон) - Год(ДатаНач)
Вот вам :о( //Высчитывает разницу в днях между двумя датами Функция РазницаВДнях(Дата1, Дата2) Если Дата1 > Дата2 Тогда Возврат Окр((Дата1 - Дата2)/86400); Иначе Возврат Окр((Дата2 - Дата1)/86400); КонецЕсли; КонецФункции; Если разница два года то сколько дней прошло сколько и выдает |
|||
10
Salvador Limones
15.05.06
✎
12:29
|
Процедура ПолучитьСтажЗаПериод(Знач ДатаОкончанияПериода,
Знач ДатаНачалаПериода, Лет=0, Месяцев=0, Дней=0) Экспорт Если ДатаОкончанияПериода >= ДатаНачалаПериода тогда Лет1 = Год(ДатаОкончанияПериода); Месяцев1 = Месяц(ДатаОкончанияПериода); Если НачалоДня(ДатаОкончанияПериода) <> НачалоДня(КонецМесяца(ДатаОкончанияПериода)) Тогда Дней1 = День(ДатаОкончанияПериода); Иначе Дней1 = 30;//В каждом месяце ровно 30 дней КонецЕсли; Лет2 = Год(ДатаНачалаПериода); Месяцев2 = Месяц(ДатаНачалаПериода); Если НачалоДня(ДатаНачалаПериода) <> НачалоДня(КонецМесяца(ДатаНачалаПериода)) Тогда Дней2 = День(ДатаНачалаПериода); Иначе Дней2 = 30;//В каждом месяце ровно 30 дней КонецЕсли; Лет = Лет1 - Лет2; Месяцев = Месяцев1 - Месяцев2; Дней = Дней1 - Дней2 + 1; //1 день на увольнение Иначе Лет = 0; Месяцев = 0; Дней = 0; КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |