Имя: Пароль:
1C
1C 7.7
v7: Определить зимнее или летнее время
0 hovnokoder
 
04.11.14
16:27
В кратце такая ситуация.
Из вне получаю некую информацию, где указано дата/время в UNIX формате (UNIX-время)
Для правильного преобразования в дату и время нужно знать какое сейчас локально зимнее или летнее время. Для этого я установил константу: ЛетнееВремя.
Но менять её вручную 2 раза в год можно забыть.
Может кто-то уже писал код для проверки когда меняется летнее на зимнее время и обратно?
1 Xapac
 
04.11.14
16:30
(0)а когда время меняют в следующий раз?
2 Defender aka LINN
 
04.11.14
16:36
(0) Вот у своего вна и спрашивай
3 hovnokoder
 
04.11.14
16:38
(1) У нас ещё переводят
4 hovnokoder
 
04.11.14
16:39
(2) у "вна" все правильно. Дата в Юних формате не зависит от летнего/зимнего времени
5 shag008
 
04.11.14
16:42
Последнее воскресенье октября и марта вроде. Попробуй дату вычислить.
6 hovnokoder
 
04.11.14
16:43
(5) когда менять понятно. Но как вычислить последнее воскресенье в месяце?
7 hovnokoder
 
04.11.14
16:45
+(6) много букв получится в коде... (или есть более простой вариант?)
8 KRV
 
04.11.14
16:46
Забить.. не?
9 hovnokoder
 
04.11.14
16:47
(8) Вариант.. Но хочется сделать красиво....
10 Fragster
 
гуру
04.11.14
16:51
тебе в 1с? а то в жабаскрипте, например, просто.
11 hovnokoder
 
04.11.14
16:53
(10) в 1С. (причём в 7.7)
12 KRV
 
04.11.14
16:53
(9) ))  ну так воткни на период возможного перехода на другое время вопрос в "ПриНачалеРаботыСиситемы" "А не наступило ли уже летне-зимнее время, мать его?"  ))) и пусть константу меняют..
13 hovnokoder
 
04.11.14
16:55
(12) Некрасиво
14 Fragster
 
гуру
04.11.14
16:57
(11) а пофиг, заюзай жабаскрипт все равно. там у new Date(ms) параметром как раз милисекунды в Unixtime, которое от UTC считается
15 hovnokoder
 
04.11.14
17:07
(14) с "жабой" вообще не дружу.
16 hovnokoder
 
04.11.14
17:09
Придётся в очередной раз писать hovnokod с перебором в цикле дат месяца (в обратном порядке и искать первое воскресенье...
17 lavalit
 
05.11.14
14:17
(16) зачем перебирать? да еще и в обратном порядке?
Есть замечательная штука НомерДняНедели(<Дата>)
Берешь номер дня от первого числа, получаешь например 4 (четверг) ну понятное дело, что +3 т.е. (7-4) будет как раз 4 число первое воскресение месяца.... зачем усложнять?
18 DigitalDolphin
 
05.11.14
18:21
ТекМесяц = ДатаМесяц(ТекущаяДата());
Если (текМесяц = 3) или (текМесяц = 10) Тогда
     КвоДнейПервойНедели = 7 - НомерДняНедели(НачМесяца(ТекущаяДата())) + 1;
     ПослДеньМесяца = ДатаДень(КонМесяца(ТекущаяДата));
     КвоОстальныхНедель = Цел((ПослДеньМесяца  - КвоДнейПервойНедели) / 7);

     ДатаПерехода = КвоДнейПервойНедели  + КвоОстальныхНедель * 7;
КОнецЕсли;

Держи программист :-)
19 DigitalDolphin
 
05.11.14
18:24
Только там не ДатаДень(), а ДатаЧисло() функция
20 DigitalDolphin
 
05.11.14
18:26
А нафига тебе это в 1С. Никогда не видел в таком потребности?
21 Fragster
 
гуру
05.11.14
19:01
(16)(17)(18)(19) вы издеваетесь? такое надо делать средствами ОС, а то очередное постановление выйдет. ну, или в соседнем часовом поясе должно будет работать - и все.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.