Имя: Пароль:
1C
1С v8
Работа с датами
,
0 discant
 
06.07.12
16:36
Как прибавить или отнять от даты число, так чтобы это число было кол-вом дней
1 butterbean
 
06.07.12
16:37
+86400
2 DrShad
 
06.07.12
16:38
(1) +86400
3 Лефмихалыч
 
06.07.12
16:38
ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&ТвояДата, 3, ДЕНЬ)
4 Serg_1960
 
06.07.12
16:44
Из типовой конфигурации :)

ПодключитьОбработчикОжидания("ПроверитьОтветыНаЗаявленияНаПодключение", 86400); // = 24(ч)*60(мин)*60(сек) = 1 сутки
5 Eugene_life
 
06.07.12
16:46
(0) Автор, не слушай ты этих недоучек, щас тебе насоветуют... Если нужно прибавить - тогда "+ КолВоДней * 86400", а если нужно отнять - тогда "- КолВоДней * 86400"   :-D
6 Coldboy
 
06.07.12
16:46
Или можно просто тупо к дате +1 сделать.
7 Coldboy
 
06.07.12
16:46
ну прибавить число в секундах
8 Fragster
 
гуру
06.07.12
16:47
говорят 30.06 было 86401 секунда
9 izekia
 
06.07.12
16:49
(8) по моим часам 86400 было
10 Ненавижу 1С
 
гуру
06.07.12
16:50
(8) реально да, формально нет
11 Coldboy
 
06.07.12
16:52
я предложил один из вариантов, можно и так сделать
Функция ПолучитьДень(ИсходнаяДата, КоличествоПрибавляемыхДней)

   Запрос = Новый Запрос("
   |ВЫБРАТЬ
   |ДОБАВИТЬКДАТЕ(&ИсходнаяДата, ДЕНЬ, &Количество) как Дата");

   Запрос.УстановитьПараметр("ИсходнаяДата", ИсходнаяДата);
   Запрос.УстановитьПараметр("Количество", КоличествоПрибавляемыхДней);

   Возврат Запрос.Выполнить().Выгрузить()[0].Дата;

КонецФункции
12 Ненавижу 1С
 
гуру
06.07.12
16:53
(11)(3) да что же вы так любите СУБД по пустякам дергать
13 Reset
 
06.07.12
16:55
Пятничный вариант:

Для Счетчик=1 по КоличествоДнейКотороеНужноДобавить цикл
   Дата=Прибавить1День(Дата);
КонецЦикла

Функция Прибавить1День(Дата)
возврат КонецДня(Дата)+1+(Дата-НачалоДня(Дата))
КонецФункции
14 Coldboy
 
06.07.12
16:55
Эт как альтернатива, числу в секунда
КоличествоДней*24*60*60 .
15 izekia
 
06.07.12
17:01
(13) дата = НачалоДня(ТекущаяДата());
секундВДне = 1;
Пока ДатаДень(дата) = ДатаДень(дата + секундВДне) Цикл
   секундВДне = секундВДне + 1;
КонецЦикла;
16 Coldboy
 
06.07.12
17:04
какие циклы вы о чем) мой метод лучший ) КОличествоДней*24*60*60. а ты попробуй своим циклом 45 дней посчитать
17 izekia
 
06.07.12
17:11
Функция СекундВДне()
   дата = НачалоДня(ТекущаяДата());
   результат = 1;
   Пока ДатаДень(дата) = ДатаДень(дата + результат) Цикл
       результат = результат + 1;
   КонецЦикла;
   Возврат результат;
КонецФункции;

Функция ДниВСекунды(количествоДней)
   Возврат количествоДней * СекундВДне();
КонецФункции
18 Pro-tone
 
06.07.12
17:27
(12) наверно ты тоже за то, чтобы (0) рекурсивно обработать