
29.01.2010, 15:48
|
|
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме: 1290766
Репутация:
1236
|
|
Код:
FILETIME orig;
// берем текущее время (100 наносекундных интервалов с 1 янв 1601г)
GetSystemTimeAsFileTime(&orig);
SYSTEMTIME st_2008;
FILETIME ft_2008;
st_2008.wYear = 2008;
st_2008.wMonth = 11;
st_2008.wDay = 14;
st_2008.wHour = 0;
st_2008.wMinute = 0;
st_2008.wSecond =0;
st_2008.wMilliseconds = 0;
// берем скока 100 наносекундных интервалов с 11 14 2008г)
SystemTimeToFileTime(&st_2008, &ft_2008);
ULONG totalseconds, totalminutes, totalhours, totaldays, totalyears;
ULONG seconds1, seconds2;
// конвертим в число секунд с 1970года
RtlTimeToSecondsSince1970((PLARGE_INTEGER)&orig, &seconds1);
RtlTimeToSecondsSince1970((PLARGE_INTEGER)&ft_2008, &seconds2);
// во и терь получаем разницу в секундах между сейчас и 11.14.2008
totalseconds = seconds1 - seconds2;
// и делим чтоб получить часы дни и годы
totalminutes = totalseconds / 60;
totalhours = totalminutes / 60;
totaldays = totalhours / 24;
totalyears = totaldays / 365;
// печатаем
dprintf("С 11.14.2008 прошло: %d секунд или %d минут или %d часов или %d дней или %d лет",
totalseconds, totalminutes, totalhours, totaldays, totalyears);
// чтобы выводить можно использовать double
// а чтобы точно (не или или) х дней х часов - дели по модулю
__________________
 
snow white world wide
|
|
|