Имя: Пароль:
1C
1С v8
Как расчитать количество дней в году 365 или 366
0 Max1986
 
07.02.12
08:31
сабж.
Кто в теме - есть ли такая простая функция?
1 andrewks
 
07.02.12
08:34
2 Fish
 
07.02.12
08:35
(0) СП украли? ДеньГода(КонецГода(ТекущаяДата())) :)))
3 andrewks
 
07.02.12
08:36
(2) эй, хорош кайф ломать!
4 Fish
 
07.02.12
08:38
(3) Сегодня вроде не пятница ещё :)))
5 skunk
 
07.02.12
08:38
делиться на 4 без остатка
6 andrewks
 
07.02.12
08:39
(5) не только
7 Ненавижу 1С
 
гуру
07.02.12
08:39
(5) 2100 не високосный год
8 Max1986
 
07.02.12
08:44
(2)не фига себе! Как сложно!
А нету разве КоличествоДнейВГоду() ?
Спасибо все равно!
9 Fish
 
07.02.12
08:48
(8) А ещё хорошо бы КоличествоДнейВНеделе(), КоличествоДнейВМесяце(), КоличествоДнейВСтолетии() и КоличествоДнейВЭпохе() - сразу на все случаи жизни :)))
10 andrewks
 
07.02.12
08:49
+(9) ..., КоличествоДнейДоДняРожденияБорисаНуралиева(), ...
11 Suhoi
 
07.02.12
08:51
ДеньСНачалоГода(31.12.2012)
12 Ненавижу 1С
 
гуру
07.02.12
08:52
ГодВисокосный = (Год%400=0) или (Год%100<>0 и Год%4=0);
13 Suhoi
 
07.02.12
08:52
+(11)ой.. ступил.. ДеньГода(31.12.2012)
14 Ненавижу 1С
 
гуру
07.02.12
08:54
извращение:

Функция ЭтоВисокосныйГод(Год)
 Попытка
   А = Дата(Год,2,29);
   Возврат Истина;
 Исключение
   Возврат Ложь;
 КонецПопытки;
КонецФункции
15 Suhoi
 
07.02.12
08:55
(14) :-)  Тоже не плохо...
17 Fish
 
07.02.12
08:58
А можно еще в цикле посчитать :))
18 comp2006
 
07.02.12
09:00
(7) Как это 2100 не високосный год???
19 andrewks
 
07.02.12
09:01
(14)
без извращений

Функция ЭтоВисокосныйГод(ТекГод)
Возврат Год(Дата(ТекГод,1,1)+31622399)=ТекГод;
КонецФункции
20 skunk
 
07.02.12
09:01
ГодВисокосный = (деньгода(конецгода(дата(2400, 1, 1)))%366 = 0);
21 comp2006
 
07.02.12
09:01
Правильный и простой ответ в (5)
Хотя, (14) тоже понравилось
22 Ненавижу 1С
 
гуру
07.02.12
09:04
(21) он неправильный
23 comp2006
 
07.02.12
09:05
Обоснуй
24 Ненавижу 1С
 
гуру
07.02.12
09:05
(23) обосновал еще в (7)
25 andrewks
 
07.02.12
09:05
(23) правильный ответ как всегда - в (1). ознакомься для общего развития
26 comp2006
 
07.02.12
09:09
(25) Уже прочёл! Не знал!
Так значит барон Мюнхгаузен был прав насчёт 31 апреля?! ))
27 Fish
 
07.02.12
09:09
(21) В (5) Правильный, но не полный: "год является високосным, если он кратен 4 и при этом не кратен 100, либо кратен 400. Год не является високосным, если он не кратен 4, либо кратен 100 и не кратен 400"
28 Suhoi
 
07.02.12
09:13
Определяет номер дня в году для  указанной даты, т.е.  
ДеньГода('2011.12.31') = 365
ДеньГода('2012.12.31') = 366

Чего гадать-то :-))
29 Ненавижу 1С
 
гуру
07.02.12
09:22
(27)  "Правильный, но не полный" - это неправильный, по крайней мере в точных науках, в юриспруденции и прочих законотворчествах может и сгодится такая формулировка
30 Fish
 
07.02.12
09:27
(29) Ну здесь же форум по 1С. А 1С далеко не точная наука :))))
31 Max1986
 
07.02.12
09:34
однако как данная тема задела за живые струны 1с-ков
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший