|
подсчет количества дней между датами | ☑ | ||
---|---|---|---|---|
0
gutalin
12.11.13
✎
13:56
|
Подскажите пожалуйста, что я делаю не так:
Дата1 = Дата(2001,1,4,00,00,00); Дата2=ТекущаяДата(); ГГ = Год (Дата1); ММ=Месяц(Дата1); ДД=День(Дата1); ГГГ=Год(Дата2); МММ=Месяц(Дата2); ДДД=День(Дата2); кол_дней=0; в_год=0; индекс_год=ГГ; пока индекс_год<ГГГ Цикл Если ((индекс_год)%4)=0 Тогда в_год=в_год+1; КонецЕсли; Если ((индекс_год)%100)=0 Тогда в_год=в_год-1; КонецЕсли; Если ((индекс_год)%400)=0 Тогда в_год=в_год+1; КонецЕсли; индекс_год=индекс_год+1; КонецЦикла; год=МММ; Если год=1 ИЛИ год=3 ИЛИ год=5 ИЛИ год=7 ИЛИ год=8 ИЛИ год=10 ИЛИ год=12 Тогда кол_дней=31; ИначеЕсли год=4 ИЛИ год=6 ИЛИ год=9 ИЛИ год=11 Тогда кол_дней=30; ИначеЕсли год=2 Тогда кол_дней=28; КонецЕсли; год2=ММ; Если год2=1 ИЛИ год=3 ИЛИ год2=5 ИЛИ год2=7 ИЛИ год2=8 ИЛИ год2=10 ИЛИ год2=12 Тогда кол_дней2=31; ИначеЕсли год2=4 ИЛИ год2=6 ИЛИ год2=9 ИЛИ год2=11 Тогда кол_дней2=30; ИначеЕсли год2=2 Тогда кол_дней2=28; КонецЕсли; attr= (((ГГГ-ГГ)*365)+(МММ*кол_дней-ММ*кол_дней2)+(ДДД-ДД))+в_год ; |
|||
1
zak555
12.11.13
✎
13:56
|
возьми подсчёт из общего модуля
|
|||
2
Wobland
12.11.13
✎
13:57
|
Синтаксических ошибок не обнаружено! всё хорошо
|
|||
3
Ненавижу 1С
гуру
12.11.13
✎
13:57
|
(0) жесть
|
|||
4
Godofsin
12.11.13
✎
13:57
|
госпади...
|
|||
5
Euguln
12.11.13
✎
13:58
|
(0) Все так, только зря
|
|||
6
r_p
12.11.13
✎
13:58
|
Мужики, а что такое, откуда школьники прут?
|
|||
7
Lev292
12.11.13
✎
13:58
|
ВЫБРАТЬ
РАЗНОСТЬДАТ(&Дата1, &Дата2, ДЕНЬ) КАК ВсегоДней |
|||
8
Ненавижу 1С
гуру
12.11.13
✎
13:58
|
Дата1 = Дата(2001,1,4,00,00,00);
Дата2 = НачалоДня(ТекущаяДата()); ЧислоДней = (Дата2-Дата1)/86400; |
|||
9
wms
12.11.13
✎
13:59
|
может так проще? запросом
ВЫБРАТЬ РАЗНОСТЬДАТ(&Дата1, &Дата2, ДЕНЬ) КАК КолДней |
|||
10
gutalin
12.11.13
✎
14:02
|
надо именно самостоятельно алгоритмом написать , вычесть автоматически это слишком просто))
|
|||
11
Godofsin
12.11.13
✎
14:03
|
оптимальный, быстрый и короткий код не принимается?! =)
|
|||
12
Wobland
12.11.13
✎
14:04
|
(10) а ты каптчу повесь и распознавай. будет сложно
|
|||
13
Ненавижу 1С
гуру
12.11.13
✎
14:04
|
(10)
Дата1 = Дата(2001,1,4,00,00,00); Дата2 = НачалоДня(ТекущаяДата()); ЧислоДней = 0; Пока Дата1<Дата2 Цикл Дата1 = Дата1+86400; ЧислоДней = ЧислоДней+1; КонецЦикла; |
|||
14
Euguln
12.11.13
✎
14:05
|
(10) ну разложи в ряд фурье и возьми пятое приближение
|
|||
15
Ненавижу 1С
гуру
12.11.13
✎
14:06
|
(10) во франч устраиваешься?
|
|||
16
gutalin
12.11.13
✎
14:08
|
во франче дали такую задачу.. так сказать чтобы проверить наши навыки абстрактного мышления
|
|||
17
Euguln
12.11.13
✎
14:09
|
(16) беги оттуда
|
|||
18
sergeev-ag-1977
12.11.13
✎
14:09
|
(10) так это просто - передать в Эксель в шаблон, а потом из Экселя обратно забрать в 1С .... Так ТЗ будет больше и ч.часов тоже больше будет и оплата соответственно ....
|
|||
19
Wobland
12.11.13
✎
14:09
|
(16) как найти площадь Ленина?
|
|||
20
Ненавижу 1С
гуру
12.11.13
✎
14:10
|
(16) критинизм процветающий
|
|||
21
sergeev-ag-1977
12.11.13
✎
14:10
|
странно - девушка и без фото взлетает ....
|
|||
22
vhl
12.11.13
✎
14:11
|
(10) Потом отлаживать еще несколько лет будешь - вылазить всякие граничные значения будут :)
|
|||
23
Wobland
12.11.13
✎
14:11
|
(21) ещё не до конца. ждём, когда (14) закончит
|
|||
24
Smallrat
12.11.13
✎
14:14
|
(22) у меня недавно засыпалась функция, которая возраст считает клиентов - работала несколько лет стабильно. Попался клиент родившийся 29 февраля - при попытке взять 29 февраля текущего года случился фейл (((
|
|||
25
sergeev-ag-1977
12.11.13
✎
14:14
|
Дата2 - Дата1 = 1
Решение: Д-Д=0 а-а=0 т-т=0 а-а=0 2-1=1 ИТОГО:00001 что равно 1 |
|||
26
hhhh
12.11.13
✎
14:23
|
(0) вот это
Если год=1 ИЛИ год=3 ИЛИ год=5 ИЛИ год=7 ИЛИ год=8 ИЛИ год=10 ИЛИ год=12 Тогда кол_дней=31; ИначеЕсли год=4 ИЛИ год=6 ИЛИ год=9 ИЛИ год=11 Тогда кол_дней=30; ИначеЕсли год=2 Тогда кол_дней=28; КонецЕсли; будет одной строчкой Кол_дней = День(КонецМесяца(Дата2)); |
|||
27
Wobland
12.11.13
✎
14:29
|
(26) ты так до (8) дооптимизируешься
|
|||
28
hhhh
12.11.13
✎
14:33
|
(27) всё таки странная логика: Год = МММ
|
|||
29
Йохохо
12.11.13
✎
15:30
|
(28) а количество дней февраля по сентябрь не смущает?)
(МММ*кол_дней-ММ*кол_дней2) |
|||
30
vhl
12.11.13
✎
15:51
|
(0) на всякий случай почитай: http://habrahabr.ru/post/146109/
|
|||
31
gutalin
12.11.13
✎
17:33
|
спасибо, вот этот кусок тоже правильно считает
(10) Дата1 = Дата(2001,1,4,00,00,00); Дата2 = НачалоДня(ТекущаяДата()); ЧислоДней = 0; Пока Дата1<Дата2 Цикл Дата1 = Дата1+86400; ЧислоДней = ЧислоДней+1; КонецЦикла; |
|||
32
Wobland
12.11.13
✎
17:53
|
(31) при разности дат в 1 секунду число дней будет 1
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |