http://starushkaqu.livejournal.com/ (
starushkaqu.livejournal.com) wrote in
useless_faq2007-03-27 08:28 pm
ещё вопрос про летнее время
в России часы переводят в последнее воскресенье марта,
то есть число каждый год разное.
Каким образом мобильники, видаки, двд (некоторых марок)
сами переключаются на летнее время?
Откуда они знают, когда переводиться?
Допустим, в них заложена программа лет на 20 вперёд,
но в разных странах перевод происходит в разные дни.
Значит, получается,
если телефон сам переключился - "белый",
а если нет - "серый" импорт???
то есть число каждый год разное.
Каким образом мобильники, видаки, двд (некоторых марок)
сами переключаются на летнее время?
Откуда они знают, когда переводиться?
Допустим, в них заложена программа лет на 20 вперёд,
но в разных странах перевод происходит в разные дни.
Значит, получается,
если телефон сам переключился - "белый",
а если нет - "серый" импорт???
no subject
Поверьте, все эти даты с легкостью вычисляются путем нехитрых арифметических операций :)
(no subject)
верю.
no subject
либо фсб всем присылает точное время, что бы шпионить было удобно
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
(no subject)
no subject
no subject
предназначенный для другой страны - там да, может не быть каких-то функций или языков.
по большей части такая техника просит установку страны проживания - для автоматической настройки (например частотной сетки каналов в случае двд/тв). или сама ее легко может получить - в случае мобильника.
Даты считаются по примитивному алгоритму на любой срок вперед.
(no subject)
(no subject)
no subject
Очень легко рассчитывается..
(no subject)
no subject
(no subject)
(no subject)
no subject
xD
(no subject)
(no subject)
no subject
В телефоне очень много маленьких календариков!
и чё?
Re: и чё?
no subject
no subject
no subject
Второй вариант часто приводит к неправильным результатам. Всем желающим вычислить момент перевода часов на 20 лет вперед - пример: меньше двух лет назад в США решением конгресса перевод часов был передвинут на пару недель. Сильно завидую умению предугадывать решения законодательных органов с таким опережением :))
no subject
(no subject)
Вот программа, которая расчитывает даты.
#include <stdlib.h> #include <stdio.h> #define DAYS1Y 365 #define DAYS4Y (365*4+1) #define DAYS100Y (DAYS4Y*25-1) #define DAYS400Y (DAYS100Y*4+1) #define GVC (31+29) /* смещение на 1 марта 0 года (1 г до н. э.)*/ char monthnames[13][4] = {"нул", "янв", "фев", "мар", "апр", "май", "июн", "июл", "авг", "сен", "окт", "ноя", "дек"}; char weekdaynames[8][3] = {"не", "пн", "вт", "ср", "чт", "пт", "сб", "вс"}; int main(int argc, char *argv[]) { int date = atoi(argv[1]); /* кол-во дней от 1 марта 0 года по юлианскому календарю */ int year; /* год */ int month; /* месяц */ int day; /* день месяца */ int weekday; /* день недели */ int week; /* неделя */ int dst; /* летнее время */ int leap; /* високосный год */ int d; /* день в году */ int x; d = date; weekday = (date+2)%7+1; x = d/DAYS400Y; year = x*400; d -= x*DAYS400Y; /* 400-летний високосный цикл */ x = d/DAYS100Y; year += x*100; d -= x*DAYS100Y; /* 100-летний високосный цикл */ x = d/DAYS4Y; year += x*4; d -= x*DAYS4Y; /* 4-летний високосный цикл */ x = d/DAYS1Y; year += x; d -= x*DAYS1Y; /* годовой цикл */ month = (d*5-3)/153; /* аппроксимация 31 30 31 30 31 31 30 31 30 31 31 28+ */ day = d - (month*153+3)/5 + 1; month += 3; d = d+31+28; if(month>12) year ++, month -= 12, d -= DAYS1Y; if(year%4==0 && year%100!=0 || year%400==0) leap = 1; else leap = 0; if(month>2) d += leap; week = (d-weekday+1)/7; dst = month>3 && month<=10; if(month==3 || month==10) if(day-weekday>=25 || weekday==7 && day>=25) dst = !dst; printf("%d-%s-%d, неделя: %d, %s, день года: %d, летнее время: %d\n", day, monthnames[month], year, week, weekdaynames[weekday], d, dst); return 0; }ужос какой!
no subject