Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

нет у кого алгоритма вычисления числа секунд с 1970г на С?

Отправлено EmbedElektrik (195.162.22.171) 25 июня 2011, г. 18:39


а то в трех соснах заблудился - не выходит цветок каменный. накидал в с-билдере для проверки код, да не получается :(
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
struct time t;
gettime(&t);
struct date d;
getdate(&d);

Label1->Caption= IntToStr(t.ti_hour)+':'+ IntToStr(t.ti_min)+':'+IntToStr(t.ti_sec);

//time_t tim;
long int tim;
tim = time(NULL);

Label2->Caption= IntToStr(tim); // âðåìÿ â ñåêóíäàõ äëÿ ïðîâåðêè

unsigned int temp = 0; // êîëè÷åñòâî ñåêóíä
// Ñïèñîê äíåé â ïåðâûõ îäèííàäöàòè ìåñÿöàõ:
char months[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30 };
// Èñïðàâëåíèå äëÿ äàò ïîñëå 28.02 â âèñîêîñíîì ãîäó:
if( 0 == d.da_year % 4 ) months[1] = 29;

// Âû÷èñëÿåì ÷èñëî ñåêóíä, ñîäåðæàùèõñÿ â ÷èñëå ïîëíûõ ëåò:
temp += 60 * 60 * 24 * ( 365 * (d.da_year-1970) + (d.da_year-1970) / 4);

// Äîáàâëÿåì ñåêóíäû ïðîøåäøèõ â òåêóùåì ãîäó ìåñÿöåâ:
for( int i = 0; i < (d.da_mon - 1); i++ )
{
temp += 60 * 60 * 24 * months[i];
}
// Äàëüøå âñå ïðîñòî:
temp += 60 * 60 * 24 * d.da_day;
temp += 60 * 60 * t.ti_hour;
temp += 60 * t.ti_min;
temp += t.ti_sec;

Label3->Caption= IntToStr(temp); // ðàññ÷èòàííîå êîëè÷åñòâî ñåêóíä
Label4->Caption= IntToStr((temp-tim)); // ðàçíèöà (äîëæíà áûòü 0)
}


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
сложите 2 и 3:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru