50 lines
1.3 KiB
Plaintext
50 lines
1.3 KiB
Plaintext
// Copyright (C) 2010, Guy Barrand. All rights reserved.
|
|
// See the file tools.license for terms.
|
|
|
|
#ifndef tools_wroot_date
|
|
#define tools_wroot_date
|
|
|
|
//NOTE : no need to have to include windows.h here, time.h does the job.
|
|
|
|
//#ifdef WIN32
|
|
//#include <windows.h>
|
|
//#else
|
|
#include <time.h>
|
|
//#endif
|
|
|
|
namespace tools {
|
|
namespace wroot {
|
|
|
|
typedef unsigned int date;
|
|
|
|
inline date get_date(){
|
|
// Set Date/Time to current time as reported by the system.
|
|
// Date and Time are encoded into one single unsigned 32 bit word.
|
|
// Date is stored with the origin being the 1st january 1995.
|
|
// Time has 1 second precision.
|
|
//#ifdef WIN32
|
|
// SYSTEMTIME tp;
|
|
// ::GetLocalTime(&tp);
|
|
// unsigned int year = tp.wYear-1900;
|
|
// unsigned int month = tp.wMonth;
|
|
// unsigned int day = tp.wDay;
|
|
// unsigned int hour = tp.wHour;
|
|
// unsigned int min = tp.wMinute;
|
|
// unsigned int sec = tp.wSecond;
|
|
//#else
|
|
time_t tloc = ::time(0);
|
|
struct tm *tp = (tm*)::localtime(&tloc);
|
|
unsigned int year = tp->tm_year;
|
|
unsigned int month = tp->tm_mon + 1;
|
|
unsigned int day = tp->tm_mday;
|
|
unsigned int hour = tp->tm_hour;
|
|
unsigned int min = tp->tm_min;
|
|
unsigned int sec = tp->tm_sec;
|
|
//#endif
|
|
return ((year-95)<<26 | month<<22 | day<<17 | hour<<12 | min<<6 | sec);
|
|
}
|
|
|
|
}}
|
|
|
|
#endif
|