| 
    
        
     
     | 
    
    
  | 
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) вы издеваетесь? такое надо делать средствами ОС, а то очередное постановление выйдет. ну, или в соседнем часовом поясе должно будет работать - и все.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |