Показать сообщение отдельно

  #4  
Старый 29.01.2010, 15:48
sn0w
Статус пользователя:
Регистрация: 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
 
Ответить с цитированием