реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Преобразование даты, Преобразование даты в юниксовую
muravei
сообщение Oct 22 2005, 03:31
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Нет ли, у кого исходника для AVR перевода "человеческого" времени в юниксовое на Асме?
Go to the top of the page
 
+Quote Post
Rst7
сообщение Oct 22 2005, 06:08
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата(muravei @ Oct 22 2005, 06:31)
Нет ли, у кого исходника для AVR перевода "человеческого" времени в юниксовое на Асме?
*


Есть, но 2 но.

1. На С - откомпилируй, например, иаром, и из листинга возьми асм-код
2. Считает от 1 янв 2000г, а в унихе 1 янв 1970, довольно просто лечится вычитанием/прибавлением константы к количеству секунд.

// Количество дней на начало месяца
__flash int DMonth[]={0,31,59,90,120,151,181,212,243,273,304,334,365};

// Преобразование времени и даты в количество секунд после 01-01-2000 00:00
unsigned long TimeDate2Long(char hrs, char min,char sec,char day,char mon,char yrs)
{
unsigned long iday;
iday=365*yrs+DMonth[mon-1]+(day - 1);
iday=iday+(yrs>>2);
if (mon>2||(yrs&3)>0)
iday++;
return(sec+60*(min+60*(hrs+24* iday)));
}

// Печать даты и времени по количеству секунд с 01-01-2000 00:00
void PrintTimeDate(char *p, unsigned long x)
{
char sec,min,hrs,mon,yrs;
unsigned int day,iday,day4,yrs4;

sec=x%60;
min=(x/60)%60;
hrs=(x/3600)%24;
iday=x/86400;
yrs4=x/((4*365+1)*86400);
day4=iday%(4*365+1);
iday=(day4==(31+28));
if (day4>=(31+28)) day4--;
yrs=(yrs4<<2)+day4/365;
day=day4%365;
mon=0;
while (DMonth[++mon]<=day);
day-=DMonth[mon-1];
if (iday) day++;
day++;
if (yrs>99) yrs=0;
sprintf_P(p,(STR)"%02d:%02d:%02d %02d-%02d-%02d",hrs,min,sec,day,mon,yrs);
}


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 03:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01319 секунд с 7
ELECTRONIX ©2004-2016