Время UNIX в дату
- Информация о материале
- Автор: Super User
- Родительская категория: Заметки
- Категория: Программирование
- Просмотров: 2352
Отсюда:
Проверено:
const unsigned char numofdays[12]={31,28,31,30,31,30,31,31,30,31,30,31};
void UNIXToDate(unsigned int utc){
struct RTC* rtc = & rtcVar;
unsigned int n,d,i;
rtc->sec = (unsigned char)(utc % 60); utc /= 60;
rtc->min = (unsigned char)(utc % 60); utc /= 60;
rtc->hour = (unsigned char)(utc % 24); utc /= 24;
rtc->wday = (unsigned char)((utc + 4) % 7);
rtc->year = (unsigned int)(1970 + utc / 1461 * 4); utc %= 1461;
n = ((utc >= 1096) ? utc - 1 : utc) / 365;
rtc->year += n;
utc -= n * 365 + (n > 2 ? 1 : 0);
for (i = 0; i < 12; i++) {
d = numofdays[i];
if (i == 1 && n == 2) d++;
if (utc < d) break;
utc -= d;
}
rtc->month = (unsigned char)(1 + i);
rtc->mday = (unsigned char)(1 + utc);
}
/////// Фрагмент с winAPI для отображения
void UNIXToDate(unsigned int utc){
struct RTC* rtc = & rtcVar;
unsigned int n,d,i;
rtc->sec = (unsigned char)(utc % 60); utc /= 60;
rtc->min = (unsigned char)(utc % 60); utc /= 60;
rtc->hour = (unsigned char)(utc % 24); utc /= 24;
rtc->wday = (unsigned char)((utc + 4) % 7);
rtc->year = (unsigned int)(1970 + utc / 1461 * 4); utc %= 1461;
n = ((utc >= 1096) ? utc - 1 : utc) / 365;
rtc->year += n;
utc -= n * 365 + (n > 2 ? 1 : 0);
for (i = 0; i < 12; i++) {
d = numofdays[i];
if (i == 1 && n == 2) d++;
if (utc < d) break;
utc -= d;
}
rtc->month = (unsigned char)(1 + i);
rtc->mday = (unsigned char)(1 + utc);
}
/////// Фрагмент с winAPI для отображения
inWindow = GetDlgItem(hwndDlg,4001);
GetWindowText(inWindow, txt, 20);
Seconds = atoi(txt);
UNIXToDate(Seconds);
inWindow = GetDlgItem(hwndDlg,4002);
wsprintf(txt,"%d:%d:%d %d.%d.%d",rtcVar.hour,rtcVar.min,rtcVar.sec,rtcVar.mday,rtcVar.month,rtcVar.year);
SetWindowText(inWindow,txt);
///-------------------------------
Прога
Прога
Язык Си. Операции с очередью: добавление, изъятие, проверка на пустоту.
- Информация о материале
- Родительская категория: Заметки
- Категория: Программирование
- Просмотров: 3725
#include "queue.h"
s8 S_last =0; // number of the last element of slow-speed queue
s8 S_first =0; // number of the first element of slow-speed queue
int Queue[Q_SIZE]={0};
s8 S_push(int inpElem){
S_last%=Q_SIZE;
if ((S_last+1)%Q_SIZE == S_first) return 1;
Queue[S_last++] = inpElem;
S_last%=Q_SIZE;
return 0;
}
int S_pull(void){
int pullVar;
if (S_last == S_first)return -1;
pullVar = Queue[S_first++];
S_first%=Q_SIZE;
return pullVar;
}
Видеодиалоги на Английском
- Информация о материале
- Автор: Super User
- Родительская категория: Заметки
- Категория: English
- Просмотров: 2209
Отличное место
Диалоги попогают понимать разговорную речь.
16.02.16 Московская область. Давление быстро снижается, ожидаются обильные осадки
- Информация о материале
- Автор: Super User
- Родительская категория: Погода
- Категория: Альтернативная погода от wow-only.ru
- Просмотров: 1923
Давление быстро снижается
Страница 153 из 189