这篇教程C++ FileTimeToLocalFileTime函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中FileTimeToLocalFileTime函数的典型用法代码示例。如果您正苦于以下问题:C++ FileTimeToLocalFileTime函数的具体用法?C++ FileTimeToLocalFileTime怎么用?C++ FileTimeToLocalFileTime使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了FileTimeToLocalFileTime函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: format_timestampstatic void format_timestamp(uint64_t seconds, int microseconds, char *buffer, int length, char *date_separator, char *date_time_separator, char *time_separator) { ULONGLONG timestamp = 0; ULONGLONG offset_to_1970 = 116444736000000000; SYSTEMTIME st; FILETIME ft, ft_local; timestamp = Int32x32To64(seconds, 10000000) + offset_to_1970; ft.dwHighDateTime = (DWORD)((timestamp >> 32) & 0xFFFFFFFF); ft.dwLowDateTime = (DWORD)(timestamp & 0xFFFFFFFF); FileTimeToLocalFileTime(&ft, &ft_local); FileTimeToSystemTime(&ft_local, &st); if (microseconds < 0) { _snprintf(buffer, length, "%d%s%02d%s%02d%s%02d%s%02d%s%02d", st.wYear, date_separator, st.wMonth, date_separator, st.wDay, date_time_separator, st.wHour, time_separator, st.wMinute, time_separator, st.wSecond); } else { _snprintf(buffer, length, "%d%s%02d%s%02d%s%02d%s%02d%s%02d.%06d", st.wYear, date_separator, st.wMonth, date_separator, st.wDay, date_time_separator, st.wHour, time_separator, st.wMinute, time_separator, st.wSecond, microseconds); }}
开发者ID:Loremipsum1988,项目名称:brickd,代码行数:24,
示例2: timeTCMSTime::CMSTime(const FILETIME& fileTime, int nDST){ // first convert file time (UTC time) to local time FILETIME localTime; if (!FileTimeToLocalFileTime(&fileTime, &localTime)) { m_time = 0; //AtlThrow(E_INVALIDARG); return; } // then convert that time to system time SYSTEMTIME sysTime; if (!FileTimeToSystemTime(&localTime, &sysTime)) { m_time = 0; //AtlThrow(E_INVALIDARG); return; } // then convert the system time to a time_t (C-runtime local time) CMSTime timeT(sysTime, nDST); *this = timeT;}
开发者ID:juhuaguai,项目名称:duilib,代码行数:24,
示例3: Filesets_Dump_OnInitDialogvoid Filesets_Dump_OnInitDialog (HWND hDlg, LPSET_DUMP_PARAMS psdp){ TCHAR szServer[ cchNAME ]; TCHAR szAggregate[ cchNAME ]; TCHAR szFileset[ cchNAME ]; psdp->lpi->GetServerName (szServer); psdp->lpi->GetAggregateName (szAggregate); psdp->lpi->GetFilesetName (szFileset); TCHAR szText[ cchRESOURCE ]; GetDlgItemText (hDlg, IDC_DUMP_FULL, szText, cchRESOURCE); LPTSTR pszText = FormatString (szText, TEXT("%s%s%s"), szServer, szAggregate, szFileset); SetDlgItemText (hDlg, IDC_DUMP_FULL, pszText); FreeString (pszText); pszText = FormatString (IDS_SET_DUMP_NAME, TEXT("%s"), szFileset); SetDlgItemText (hDlg, IDC_DUMP_FILENAME, pszText); FreeString (pszText); // Get the local system time SYSTEMTIME st; GetSystemTime (&st); FILETIME ft; SystemTimeToFileTime (&st, &ft); FILETIME lft; FileTimeToLocalFileTime (&ft, &lft); FileTimeToSystemTime (&lft, &st); DA_SetDate (GetDlgItem (hDlg, IDC_DUMP_DATE), &st); TI_SetTime (GetDlgItem (hDlg, IDC_DUMP_TIME), &st); CheckDlgButton (hDlg, IDC_DUMP_FULL, TRUE); Filesets_Dump_OnSelect (hDlg); Filesets_Dump_EnableOK (hDlg);}
开发者ID:bagdxk,项目名称:openafs,代码行数:36,
示例4: ConvertDatevoid ConvertDate(const FILETIME& ft,wchar_t *DateText,wchar_t *TimeText){ if (ft.dwHighDateTime==0 && ft.dwLowDateTime==0) { if (DateText!=NULL) *DateText=0; if (TimeText!=NULL) *TimeText=0; return; } SYSTEMTIME st; FILETIME ct; FileTimeToLocalFileTime(&ft,&ct); FileTimeToSystemTime(&ct,&st); if (TimeText!=NULL) GetTimeFormat(LOCALE_USER_DEFAULT, 0, &st, 0, TimeText, MAX_DATETIME); if (DateText!=NULL) GetDateFormat(LOCALE_USER_DEFAULT, 0, &st, 0, DateText, MAX_DATETIME);}
开发者ID:CyberShadow,项目名称:FAR,代码行数:24,
示例5: EnterCriticalSectionBOOL CStreamVideoSource::GetRawImage(BYTE **pRawData, FILETIME *timestamp, DWORD *bEOF ){ // Lock the image here and don't unlock until we get the frame back EnterCriticalSection(&m_csBufLock); *bEOF = FALSE; if( m_bGotVideoFrame ) { // Get the next frame *pRawData = m_pAlignedImg; // Need Time stamp GetSystemTimeAsFileTime(timestamp); FileTimeToLocalFileTime(timestamp, timestamp); m_bGotVideoFrame = FALSE; return TRUE; } else { // Nothing.. unlock LeaveCriticalSection(&m_csBufLock); // Check for process exit if( WAIT_OBJECT_0 == WaitForSingleObject( m_piStreamer.hProcess, 0 ) ) { // Child process has disappeared (exited) *bEOF = TRUE; m_bRun = FALSE; CleanupChild(); } return FALSE; }}
开发者ID:anyboo,项目名称:SPlayer,代码行数:36,
示例6: posixemu_statint posixemu_stat(const char *name, struct stat *statbuf){ char buf[1024]; DWORD attr; FILETIME ft, lft; fname_atow(name,buf,sizeof buf); if ((attr = getattr(buf,&ft,(size_t*)&statbuf->st_size)) == (DWORD)~0) { lasterror = GetLastError(); return -1; } else { statbuf->st_mode = (attr & FILE_ATTRIBUTE_READONLY) ? FILEFLAG_READ: FILEFLAG_READ | FILEFLAG_WRITE; if (attr & FILE_ATTRIBUTE_ARCHIVE) statbuf->st_mode |= FILEFLAG_ARCHIVE; if (attr & FILE_ATTRIBUTE_DIRECTORY) statbuf->st_mode |= FILEFLAG_DIR; FileTimeToLocalFileTime(&ft,&lft); statbuf->st_mtime = (*(__int64 *)&lft-((__int64)(369*365+89)*(__int64)(24*60*60)*(__int64)10000000))/(__int64)10000000; } return 0;}
开发者ID:lleoha,项目名称:WinFellow,代码行数:24,
示例7: hal_getsysdatestatic TINThal_getsysdate(struct THALBase *hal, TDATE *datep, TINT *dsbiasp){ union { LARGE_INTEGER li; FILETIME ft; } utime; union { LARGE_INTEGER li; FILETIME ft; } ltime; TUINT64 syst; TINT dsbias; GetSystemTimeAsFileTime(&utime.ft); syst = utime.li.QuadPart / 10; /* to microseconds since 1.1.1601 */ FileTimeToLocalFileTime(&utime.ft, <ime.ft); dsbias = (TINT) ((utime.li.QuadPart - ltime.li.QuadPart) / 10000000); if (dsbiasp) *dsbiasp = dsbias; else syst -= (TINT64) dsbias * 1000000; if (datep) datep->tdt_Int64 = syst; return 0;}
开发者ID:callcc,项目名称:tekui,代码行数:24,
示例8: filetimeuLong filetime( const char *filename, /* name of file to get info on */ tm_zip *tmzip, /* return value: access, modific. and creation times */ uLong *dt) /* dostime *//*****************************/#ifdef WIN32{ int ret = 0; { FILETIME ftLocal; HANDLE hFind; WIN32_FIND_DATA ff32; hFind = FindFirstFile(filename,&ff32); if (hFind != INVALID_HANDLE_VALUE) { FileTimeToLocalFileTime(&(ff32.ftLastWriteTime),&ftLocal); FileTimeToDosDateTime(&ftLocal,((LPWORD)dt)+1,((LPWORD)dt)+0); FindClose(hFind); ret = 1; } } return ret;}
开发者ID:BackupTheBerlios,项目名称:kicad-svn,代码行数:24,
示例9: definedACE_BEGIN_VERSIONED_NAMESPACE_DECL# if defined (ACE_HAS_WINCE)ACE_TCHAR *ACE_OS::ctime_r (const time_t *clock, ACE_TCHAR *buf, int buflen){ // buflen must be at least 26 wchar_t long. if (buflen < 26) // Again, 26 is a magic number. { errno = ERANGE; return 0; } // This is really stupid, converting FILETIME to timeval back and // forth. It assumes FILETIME and DWORDLONG are the same structure // internally. ULARGE_INTEGER _100ns; _100ns.QuadPart = (DWORDLONG) *clock * 10000 * 1000 + ACE_Time_Value::FILETIME_to_timval_skew; FILETIME file_time; file_time.dwLowDateTime = _100ns.LowPart; file_time.dwHighDateTime = _100ns.HighPart; FILETIME localtime; SYSTEMTIME systime; FileTimeToLocalFileTime (&file_time, &localtime); FileTimeToSystemTime (&localtime, &systime); ACE_OS::sprintf (buf, ACE_OS_CTIME_R_FMTSTR, ACE_OS_day_of_week_name[systime.wDayOfWeek], ACE_OS_month_name[systime.wMonth - 1], systime.wDay, systime.wHour, systime.wMinute, systime.wSecond, systime.wYear); return buf;}
开发者ID:08keelr,项目名称:TrinityCore,代码行数:36,
示例10: DragQueryFilevoid CFileEncryptDlg::OnDropFiles(HDROP hDropInfo){ // TODO: 在此添加消息处理程序代码和/或调用默认值 int DropCount = DragQueryFile(hDropInfo, -1, NULL, 0); CString FileInfo; TCHAR *pName; WIN32_FIND_DATA FindFileData; SYSTEMTIME mysystime; FILETIME loctime; if (DropCount <= 1) { HANDLE hFile; int NameSize = DragQueryFile(hDropInfo, 0, NULL, 0); pName = new TCHAR[NameSize + 1]; DragQueryFile(hDropInfo, 0, pName, NameSize+1); hFile = FindFirstFile(pName, &FindFileData); FindClose(hFile); if (hFile == INVALID_HANDLE_VALUE) { FileInfo = _T("是不是把硬盘//U盘//CD驱动器拖拽进来啦,这样是不行滴!"); SetButtonFalse(); } else if ((FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0x10) { FileInfo = _T("不能对文件夹进行操作!"); SetButtonFalse(); } else if (FindFileData.nFileSizeLow == 0 && FindFileData.nFileSizeHigh == 0) { FileInfo = _T("文件大小为0字节,无需操作!"); SetButtonFalse(); } else { // 文件名称 str_FileName = pName; FileInfo += str_FileName; FileInfo += _T("/r/n"); CString str_data; // 文件大小 // llFileSize = (FindFileData.nFileSizeHigh << 32) + FindFileData.nFileSizeLow; // 行为未定义,但是运行正常,会首先转换为LONGLONG,然后左移 llFileSize = FindFileData.nFileSizeHigh; llFileSize <<= 32; llFileSize += FindFileData.nFileSizeLow; str_data.Format(_T("文件大小:%I64d字节/r/n"), llFileSize); FileInfo += str_data; // 文件创建时间 // 转化为本地时间,否则会有8小时误差 FileTimeToLocalFileTime(&FindFileData.ftLastWriteTime, &loctime); FileTimeToSystemTime(&loctime, &mysystime); str_data.Format(_T("最后修改时间:%d年%d月%d日 %d:%02d:%02d"), mysystime.wYear, mysystime.wMonth, mysystime.wDay, mysystime.wHour, mysystime.wMinute, mysystime.wSecond); FileInfo += str_data; GetDlgItem(IDC_ENCRYPT)->EnableWindow(TRUE); GetDlgItem(IDC_DECRYPT)->EnableWindow(TRUE); } delete[] pName; pName = NULL; DragFinish(hDropInfo); } else { FileInfo = _T("本程序只支持单个文件拖拽加密!"); } SetDlgItemText(IDC_FILE_INFORMATION, FileInfo); CDialogEx::OnDropFiles(hDropInfo);}
开发者ID:Ruijie-Qin,项目名称:FileEncrypt,代码行数:68,
示例11: propBasicQueryKey/** propBasicQueryKey** Purpose:** Set information values for Key object type** If ExtendedInfoAvailable is FALSE then it calls propSetDefaultInfo to set Basic page properties**/VOID propBasicQueryKey( _In_ PROP_OBJECT_INFO *Context, _In_ HWND hwndDlg, _In_ BOOL ExtendedInfoAvailable){ NTSTATUS status; ULONG bytesNeeded; HANDLE hObject; TIME_FIELDS SystemTime; WCHAR szBuffer[MAX_PATH]; KEY_FULL_INFORMATION kfi; SetDlgItemText(hwndDlg, ID_KEYSUBKEYS, T_CannotQuery); SetDlgItemText(hwndDlg, ID_KEYVALUES, T_CannotQuery); SetDlgItemText(hwndDlg, ID_KEYLASTWRITE, T_CannotQuery); if (Context == NULL) { return; } // // Open Key object. // hObject = NULL; if (!propOpenCurrentObject(Context, &hObject, KEY_QUERY_VALUE)) { return; } RtlSecureZeroMemory(&kfi, sizeof(KEY_FULL_INFORMATION)); status = NtQueryKey(hObject, KeyFullInformation, &kfi, sizeof(KEY_FULL_INFORMATION), &bytesNeeded); if (NT_SUCCESS(status)) { //Subkeys count RtlSecureZeroMemory(szBuffer, sizeof(szBuffer)); ultostr(kfi.SubKeys, _strend(szBuffer)); SetDlgItemText(hwndDlg, ID_KEYSUBKEYS, szBuffer); //Values count RtlSecureZeroMemory(szBuffer, sizeof(szBuffer)); ultostr(kfi.Values, _strend(szBuffer)); SetDlgItemText(hwndDlg, ID_KEYVALUES, szBuffer); //LastWrite time RtlSecureZeroMemory(&SystemTime, sizeof(SystemTime)); FileTimeToLocalFileTime((PFILETIME)&kfi.LastWriteTime, (PFILETIME)&kfi.LastWriteTime); RtlTimeToTimeFields((PLARGE_INTEGER)&kfi.LastWriteTime, (PTIME_FIELDS)&SystemTime); //Month starts from 0 index if (SystemTime.Month - 1 < 0) SystemTime.Month = 1; if (SystemTime.Month > 12) SystemTime.Month = 12; RtlSecureZeroMemory(&szBuffer, sizeof(szBuffer)); wsprintf(szBuffer, FORMATTED_TIME_DATE_VALUE, SystemTime.Hour, SystemTime.Minute, SystemTime.Second, SystemTime.Day, Months[SystemTime.Month - 1], SystemTime.Year); SetDlgItemText(hwndDlg, ID_KEYLASTWRITE, szBuffer); } // // Query object basic and type info if needed. // if (ExtendedInfoAvailable == FALSE) { propSetDefaultInfo(Context, hwndDlg, hObject); } NtClose(hObject);}
开发者ID:songbei6,项目名称:WinObjEx64,代码行数:87,
示例12: propBasicQuerySymlink/** propBasicQuerySymlink** Purpose:** Set information values for SymbolicLink object type** If ExtendedInfoAvailable is FALSE then it calls propSetDefaultInfo to set Basic page properties**/VOID propBasicQuerySymlink( _In_ PROP_OBJECT_INFO *Context, _In_ HWND hwndDlg, _In_ BOOL ExtendedInfoAvailable){ NTSTATUS status; ULONG bytesNeeded; HANDLE hObject; LPWSTR lpLinkTarget; TIME_FIELDS SystemTime; WCHAR szBuffer[MAX_PATH]; OBJECT_BASIC_INFORMATION obi; SetDlgItemText(hwndDlg, ID_OBJECT_SYMLINK_TARGET, T_CannotQuery); SetDlgItemText(hwndDlg, ID_OBJECT_SYMLINK_CREATION, T_CannotQuery); if (Context == NULL) { return; } // // Open SymbolicLink object. // hObject = NULL; if (!propOpenCurrentObject(Context, &hObject, SYMBOLIC_LINK_QUERY)) { return; } // // Copy link target from main object list for performance reasons. // So we don't need to query same data again. // lpLinkTarget = Context->lpDescription; if (lpLinkTarget) { SetDlgItemText(hwndDlg, ID_OBJECT_SYMLINK_TARGET, lpLinkTarget); } //Query Link Creation Time RtlSecureZeroMemory(&obi, sizeof(OBJECT_BASIC_INFORMATION)); status = NtQueryObject(hObject, ObjectBasicInformation, &obi, sizeof(OBJECT_BASIC_INFORMATION), &bytesNeeded); if (NT_SUCCESS(status)) { FileTimeToLocalFileTime((PFILETIME)&obi.CreationTime, (PFILETIME)&obi.CreationTime); RtlSecureZeroMemory(&SystemTime, sizeof(SystemTime)); RtlTimeToTimeFields((PLARGE_INTEGER)&obi.CreationTime, (PTIME_FIELDS)&SystemTime); //Month starts from 0 index if (SystemTime.Month - 1 < 0) SystemTime.Month = 1; if (SystemTime.Month > 12) SystemTime.Month = 12; RtlSecureZeroMemory(&szBuffer, sizeof(szBuffer)); wsprintf(szBuffer, FORMATTED_TIME_DATE_VALUE, SystemTime.Hour, SystemTime.Minute, SystemTime.Second, SystemTime.Day, Months[SystemTime.Month - 1], SystemTime.Year); SetDlgItemText(hwndDlg, ID_OBJECT_SYMLINK_CREATION, szBuffer); } // // Query object basic and type info if needed. // if (ExtendedInfoAvailable == FALSE) { propSetDefaultInfo(Context, hwndDlg, hObject); } NtClose(hObject);}
开发者ID:songbei6,项目名称:WinObjEx64,代码行数:84,
示例13: CheckRecursivFilesFromSizeAndEM//----------------------------------------------------------------void CheckRecursivFilesFromSizeAndEM(DWORD iitem, char *remote_name, long long int size, char *MD5, char *SHA256, BOOL recursif, char*source){ #ifdef DEBUG_MODE_FILES AddMsg(h_main,"DEBUG","files:CheckRecursivFilesFromSizeAndEM START",remote_name); #endif WIN32_FIND_DATA data; char tmp_path[LINE_SIZE]="", tmp_remote_name[LINE_SIZE]="", date[MAX_PATH]="/0/0/0"; //search BOOL exist; HANDLE hfile, hfind; LARGE_INTEGER filesize; char s_sha[SHA256_SIZE]="",s_md5[MAX_PATH]; FILETIME LocalFileTime; SYSTEMTIME SysTimeModification; snprintf(tmp_path,LINE_SIZE,"%s//*.*",remote_name); hfind = FindFirstFile(tmp_path, &data); if (hfind != INVALID_HANDLE_VALUE && scan_start) { do { if (data.cFileName[0] == '.' && (data.cFileName[1] == 0 || (data.cFileName[2] == 0 && data.cFileName[1] == '.')))continue; #ifdef DEBUG_MODE_FILES AddMsg(h_main,(char*)"DEBUG S(CheckRecursivFilesFromSizeAndEM)",remote_name,(char*)data.cFileName); #endif if ((data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && recursif) { snprintf(tmp_remote_name,LINE_SIZE,"%s//%s",remote_name,data.cFileName); #ifdef DEBUG_MODE_FILES AddMsg(h_main,(char*)"DEBUG D(CheckRecursivFilesFromSizeAndEM)",tmp_remote_name,(char*)""); #endif CheckRecursivFilesFromSizeAndEM(iitem, tmp_remote_name, size, MD5, SHA256, recursif, source); continue; } exist = FALSE; filesize.HighPart = data.nFileSizeHigh; filesize.LowPart = data.nFileSizeLow; if (filesize.QuadPart == size || size == -1) { snprintf(tmp_remote_name,LINE_SIZE,"%s//%s",remote_name,data.cFileName); s_md5[0] = 0; s_sha[0] = 0; if (MD5[0] != 0 || SHA256[0] != 0 || (SHA256[0] == 0 && MD5[0] == 0)) { //make MD5 and SHA256 hashes //MD5 hfile = CreateFile(tmp_remote_name,GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN,0); if (hfile != INVALID_HANDLE_VALUE) { FileToMd5(hfile, s_md5); CloseHandle(hfile); //SHA256 hfile = CreateFile(tmp_remote_name,GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN,0); if (hfile != INVALID_HANDLE_VALUE) { FileToSHA256(hfile, s_sha); CloseHandle(hfile); } } if (MD5[0] == 0 && SHA256[0] == 0)exist = TRUE; else { if(MD5[0] != 0 && compare_nocas(MD5,s_md5))exist = TRUE; else if(SHA256[0] != 0 && compare_nocas(SHA256,s_sha))exist = TRUE; } if (exist && (filesize.QuadPart!=0 || (data.ftLastWriteTime.dwHighDateTime != 0 && data.ftLastWriteTime.dwLowDateTime != 0))) { date[0] = 0; FileTimeToLocalFileTime(&(data.ftLastWriteTime), &LocalFileTime); FileTimeToSystemTime(&LocalFileTime, &SysTimeModification); snprintf(date,MAX_PATH,"[Last_modification:%02d/%02d/%02d-%02d:%02d:%02d,Size:%lo]" ,SysTimeModification.wYear,SysTimeModification.wMonth,SysTimeModification.wDay ,SysTimeModification.wHour,SysTimeModification.wMinute,SysTimeModification.wSecond,filesize.QuadPart); if (s_sha[0] != 0) { snprintf(tmp_remote_name,LINE_SIZE,"%s %s;MD5;%s;%s;%s",tmp_remote_name,date,s_md5[0]==0?"":s_md5,SHA1_enable?"SHA1":"SHA256",s_sha[0]==0?"":s_sha); }else if (s_md5[0] != 0) { snprintf(tmp_remote_name,LINE_SIZE,"%s %s;MD5;%s;;",tmp_remote_name,date,s_md5); }else snprintf(tmp_remote_name,LINE_SIZE,"%s %s;;;;",tmp_remote_name,date); AddMsg(h_main,(char*)"FOUND (File2)",tmp_remote_name,(char*)""); AddLSTVUpdateItem(tmp_remote_name, COL_FILES, iitem); } } }//.........这里部分代码省略.........
开发者ID:garfieldchien,项目名称:omnia-projetcs,代码行数:101,
示例14: wceex_stat/******************************************************************************** wceex_stat - Get file attributes for file and store them in buffer.** Description:** File times on Windows CE: Windows CE object store keeps track of only* one time, the time the file was last written to.** Return value:** Upon successful completion, 0 shall be returned.* Otherwise, -1 shall be returned and errno set to indicate the error.** XXX - mloskot - errno is not yet implemented** Reference:* IEEE Std 1003.1, 2004 Edition********************************************************************************/int wceex_stat(const char* filename, struct stat *buffer){ HANDLE findhandle; WIN32_FIND_DATA findbuf; wchar_t pathWCE[MAX_PATH]; //Don't allow wildcards to be interpreted by system if(strpbrk(filename, "?*")) //if(wcspbrk(path, L"?*")) { //errno = ENOENT; return(-1); } //search file/dir mbstowcs(pathWCE, filename, strlen(filename) + 1); findhandle = FindFirstFile(pathWCE, &findbuf); if(findhandle == INVALID_HANDLE_VALUE) { //is root if(_stricmp(filename, ".//")==0) { findbuf.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY; //dummy values findbuf.nFileSizeHigh = 0; findbuf.nFileSizeLow = 0; findbuf.cFileName[0] = '/0'; buffer->st_mtime = wceex_local_to_time_r(1980 - TM_YEAR_BASE, 0, 1, 0, 0, 0); buffer->st_atime = buffer->st_mtime; buffer->st_ctime = buffer->st_mtime; } //treat as an error else { //errno = ENOENT; return(-1); } } else { /* File is found*/ SYSTEMTIME SystemTime; FILETIME LocalFTime; //Time of last modification if(!FileTimeToLocalFileTime( &findbuf.ftLastWriteTime, &LocalFTime) || !FileTimeToSystemTime(&LocalFTime, &SystemTime)) { //errno = ::GetLastError(); FindClose( findhandle ); return( -1 ); } buffer->st_mtime = wceex_local_to_time(&SystemTime); //Time od last access of file if(findbuf.ftLastAccessTime.dwLowDateTime || findbuf.ftLastAccessTime.dwHighDateTime) { if(!FileTimeToLocalFileTime(&findbuf.ftLastAccessTime, &LocalFTime) || !FileTimeToSystemTime(&LocalFTime, &SystemTime)) { //errno = ::GetLastError(); FindClose( findhandle ); return( -1 ); } buffer->st_atime = wceex_local_to_time(&SystemTime); } else { buffer->st_atime = buffer->st_mtime; } //Time of creation of file if(findbuf.ftCreationTime.dwLowDateTime || findbuf.ftCreationTime.dwHighDateTime) { if(!FileTimeToLocalFileTime(&findbuf.ftCreationTime, &LocalFTime) ||//.........这里部分代码省略.........
开发者ID:RangelReale,项目名称:sandbox,代码行数:101,
示例15: defined//.........这里部分代码省略......... int rc; if ((rc = DosFindNext(dir, &find, sizeof(find), &count)) != 0) { //fprintf(stderr, "%d/n/n", rc); return -1; } if (count != 1) return -1; name = find.achName; if (Flags & ffFULLPATH) { JoinDirFile(fullpath, Directory, name); name = fullpath; } memset((void *)&t, 0, sizeof(t)); t.tm_year = find.fdateLastWrite.year + 80; t.tm_mon = find.fdateLastWrite.month - 1; t.tm_mday = find.fdateLastWrite.day; t.tm_hour = find.ftimeLastWrite.hours; t.tm_min = find.ftimeLastWrite.minutes; t.tm_sec = find.ftimeLastWrite.twosecs * 2; // ugh! t.tm_isdst = -1; *fi = new FileInfo(name, (find.attrFile & FILE_DIRECTORY) ? fiDIRECTORY : fiFILE, find.cbFile, mktime(&t)); return 0;#elif defined(NT) && !defined(USE_DIRENT)#if defined(USE_VCFIND) _finddata_t find; char fullpath[MAXPATH]; char *name; struct tm t; int rc; if ((rc = _findnext(dir, &find)) != 0) { // fprintf(stderr, "%d/n/n", rc); return -1; } name = find.name; if (Flags & ffFULLPATH) { JoinDirFile(fullpath, Directory, name); name = fullpath; } *fi = new FileInfo(name, (find.attrib & _A_SUBDIR) ? fiDIRECTORY : fiFILE, find.size, find.time_create); return 0;#else WIN32_FIND_DATA find; char fullpath[MAXPATH]; char *name; struct tm t; SYSTEMTIME st; FILETIME localft; // needed for time conversion int rc; if ((rc = FindNextFile((HANDLE)dir, &find)) != TRUE) { //fprintf(stderr, "%d/n/n", rc); return -1; } name = find.cFileName; if (Flags & ffFULLPATH) { JoinDirFile(fullpath, Directory, name); name = fullpath; } /* * since filetime is in UTC format we need to convert it first to * localtime and when we have "correct" time we can use it. */ FileTimeToLocalFileTime(&find.ftLastWriteTime, &localft); FileTimeToSystemTime(&localft, &st); t.tm_year = st.wYear - 1900; t.tm_mon = st.wMonth - 1; // in system time january is 1... t.tm_mday = st.wDay; t.tm_hour = st.wHour; t.tm_min = st.wMinute; t.tm_sec = st.wSecond; t.tm_isdst = -1; *fi = new FileInfo(name, (find.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? fiDIRECTORY : fiFILE, find.nFileSizeLow, mktime(&t)); return 0;#endif // put code here#endif}
开发者ID:AaronDP,项目名称:efte_adbshell,代码行数:101,
示例16: FindAttributesOrClasses//.........这里部分代码省略......... else wprintf(L" Could not convert UTC-Time./n"); } break; case ADSTYPE_LARGE_INTEGER: for (x = 0; x< col.dwNumValues; x++) { liValue = col.pADsValues[x].LargeInteger; filetime.dwLowDateTime = liValue.LowPart; filetime.dwHighDateTime = liValue.HighPart; if((filetime.dwHighDateTime==0) && (filetime.dwLowDateTime==0)) { wprintf(L" No value set./n"); } else { //Check for properties of type LargeInteger that represent time //if TRUE, then convert to variant time. if ((0==wcscmp(L"accountExpires", col.pszAttrName))| (0==wcscmp(L"badPasswordTime", col.pszAttrName))|| (0==wcscmp(L"lastLogon", col.pszAttrName))|| (0==wcscmp(L"lastLogoff", col.pszAttrName))|| (0==wcscmp(L"lockoutTime", col.pszAttrName))|| (0==wcscmp(L"pwdLastSet", col.pszAttrName)) ) { //Handle special case for Never Expires where low part is -1 if (filetime.dwLowDateTime==-1) { wprintf(L" Never Expires./n"); } else { if (FileTimeToLocalFileTime(&filetime, &filetime) != 0) { if (FileTimeToSystemTime(&filetime, &systemtime) != 0) { if (SystemTimeToVariantTime(&systemtime, &date) != 0) { //Pack in variant.vt varDate.vt = VT_DATE; varDate.date = date; VariantChangeType(&varDate,&varDate,VARIANT_NOVALUEPROP,VT_BSTR); wprintf(L" %s/r/n",varDate.bstrVal); VariantClear(&varDate); } else { wprintf(L" FileTimeToVariantTime failed/n"); } } else { wprintf(L" FileTimeToSystemTime failed/n"); } } else { wprintf(L" FileTimeToLocalFileTime failed/n"); } } } else
开发者ID:Essjay1,项目名称:Windows-classic-samples,代码行数:67,
示例17: ConvertDatevoid ConvertDate(const FILETIME &ft,string &strDateText, string &strTimeText,int TimeLength, int Brief,int TextMonth,int FullYear,int DynInit){ static int WDateFormat; static wchar_t WDateSeparator,WTimeSeparator,WDecimalSeparator; static bool Init=false; static SYSTEMTIME lt; int DateFormat; wchar_t DateSeparator,TimeSeparator,DecimalSeparator; if (!Init) { WDateFormat=GetDateFormat(); WDateSeparator=GetDateSeparator(); WTimeSeparator=GetTimeSeparator(); WDecimalSeparator=GetDecimalSeparator(); GetLocalTime(<); Init=true; } DateFormat=DynInit?GetDateFormat():WDateFormat; DateSeparator=DynInit?GetDateSeparator():WDateSeparator; TimeSeparator=DynInit?GetTimeSeparator():WTimeSeparator; DecimalSeparator=DynInit?GetDecimalSeparator():WDecimalSeparator; int CurDateFormat=DateFormat; if (Brief && CurDateFormat==2) CurDateFormat=0; SYSTEMTIME st; FILETIME ct; if (!ft.dwHighDateTime) { strDateText.Clear(); strTimeText.Clear(); return; } FileTimeToLocalFileTime(&ft,&ct); FileTimeToSystemTime(&ct,&st); //if ( !strTimeText.IsEmpty() ) { const wchar_t *Letter=L""; if (TimeLength==6) { Letter=(st.wHour<12) ? L"a":L"p"; if (st.wHour>12) st.wHour-=12; if (!st.wHour) st.wHour=12; } if (TimeLength<7) strTimeText.Format(L"%02d%c%02d%s",st.wHour,TimeSeparator,st.wMinute,Letter); else { string strFullTime; strFullTime.Format(L"%02d%c%02d%c%02d%c%03d",st.wHour,TimeSeparator, st.wMinute,TimeSeparator,st.wSecond,DecimalSeparator,st.wMilliseconds); strTimeText.Format(L"%.*s",TimeLength, strFullTime.CPtr()); } } //if ( !strDateText.IsEmpty() ) { int Year=st.wYear; if (!FullYear) Year%=100; if (TextMonth) { const wchar_t *Month=MSG(MMonthJan+st.wMonth-1); switch (CurDateFormat) { case 0: strDateText.Format(L"%3.3s %2d %02d",Month,st.wDay,Year); break; case 1: strDateText.Format(L"%2d %3.3s %02d",st.wDay,Month,Year); break; default: strDateText.Format(L"%02d %3.3s %2d",Year,Month,st.wDay); break; } } else { int p1,p2,p3=Year; int w1=2, w2=2, w3=2; wchar_t f1=L'0', f2=L'0', f3=FullYear==2?L' ':L'0'; switch (CurDateFormat) { case 0: p1=st.wMonth; p2=st.wDay;//.........这里部分代码省略.........
开发者ID:alexlav,项目名称:conemu,代码行数:101,
示例18: Get_Exception_Info//*************************************************************LLSD WINAPI Get_Exception_Info(PEXCEPTION_POINTERS pException)//*************************************************************// Allocate Str[DUMP_SIZE_MAX] and return Str with dump, if !pException - just return call stack in Str.{ LLSD info; LPWSTR Str; int Str_Len;// int i; LPWSTR Module_Name = new WCHAR[MAX_PATH]; PBYTE Module_Addr; HANDLE hFile; FILETIME Last_Write_Time; FILETIME Local_File_Time; SYSTEMTIME T; Str = new WCHAR[DUMP_SIZE_MAX]; Str_Len = 0; if (!Str) return NULL; Get_Version_Str(info); GetModuleFileName(NULL, Str, MAX_PATH); info["Process"] = ll_convert_wide_to_string(Str); info["ThreadID"] = (S32)GetCurrentThreadId(); // If exception occurred. if (pException) { EXCEPTION_RECORD & E = *pException->ExceptionRecord; CONTEXT & C = *pException->ContextRecord; // If module with E.ExceptionAddress found - save its path and date. if (Get_Module_By_Ret_Addr((PBYTE)E.ExceptionAddress, Module_Name, Module_Addr)) { info["Module"] = ll_convert_wide_to_string(Module_Name); if ((hFile = CreateFile(Module_Name, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) != INVALID_HANDLE_VALUE) { if (GetFileTime(hFile, NULL, NULL, &Last_Write_Time)) { FileTimeToLocalFileTime(&Last_Write_Time, &Local_File_Time); FileTimeToSystemTime(&Local_File_Time, &T); info["DateModified"] = llformat("%02d/%02d/%d", T.wMonth, T.wDay, T.wYear); } CloseHandle(hFile); } } else { info["ExceptionAddr"] = (int)E.ExceptionAddress; } info["ExceptionCode"] = (int)E.ExceptionCode; /* //TODO: Fix this if (E.ExceptionCode == EXCEPTION_ACCESS_VIOLATION) { // Access violation type - Write/Read. LLSD exception_info; exception_info["Type"] = E.ExceptionInformation[0] ? "Write" : "Read"; exception_info["Address"] = llformat("%08x", E.ExceptionInformation[1]); info["Exception Information"] = exception_info; } */ // Save instruction that caused exception. /* std::string str; for (i = 0; i < 16; i++) str += llformat(" %02X", PBYTE(E.ExceptionAddress)[i]); info["Instruction"] = str; */ LLSD registers; registers["EAX"] = (int)C.Eax; registers["EBX"] = (int)C.Ebx; registers["ECX"] = (int)C.Ecx; registers["EDX"] = (int)C.Edx; registers["ESI"] = (int)C.Esi; registers["EDI"] = (int)C.Edi; registers["ESP"] = (int)C.Esp; registers["EBP"] = (int)C.Ebp; registers["EIP"] = (int)C.Eip; registers["EFlags"] = (int)C.EFlags; info["Registers"] = registers; } //if (pException) // Save call stack info. Get_Call_Stack(pException->ExceptionRecord, pException->ContextRecord, info); return info;} //Get_Exception_Info
开发者ID:VirtualReality,项目名称:Viewer,代码行数:97,
示例19: APR_DECLAREAPR_DECLARE(apr_status_t) apr_time_exp_lt(apr_time_exp_t *result, apr_time_t input){ SYSTEMTIME st; FILETIME ft, localft; AprTimeToFileTime(&ft, input);#if APR_HAS_UNICODE_FS && !defined(_WIN32_WCE) IF_WIN_OS_IS_UNICODE { TIME_ZONE_INFORMATION *tz; SYSTEMTIME localst; apr_time_t localtime; get_local_timezone(&tz); FileTimeToSystemTime(&ft, &st); /* The Platform SDK documents that SYSTEMTIME/FILETIME are * generally UTC. We use SystemTimeToTzSpecificLocalTime * because FileTimeToLocalFileFime is documented that the * resulting time local file time would have DST relative * to the *present* date, not the date converted. */ SystemTimeToTzSpecificLocalTime(tz, &st, &localst); SystemTimeToAprExpTime(result, &localst); result->tm_usec = (apr_int32_t) (input % APR_USEC_PER_SEC); /* Recover the resulting time as an apr time and use the * delta for gmtoff in seconds (and ignore msec rounding) */ SystemTimeToFileTime(&localst, &localft); FileTimeToAprTime(&localtime, &localft); result->tm_gmtoff = (int)apr_time_sec(localtime) - (int)apr_time_sec(input); /* To compute the dst flag, we compare the expected * local (standard) timezone bias to the delta. * [Note, in war time or double daylight time the * resulting tm_isdst is, desireably, 2 hours] */ result->tm_isdst = (result->tm_gmtoff / 3600) - (-(tz->Bias + tz->StandardBias) / 60); }#endif#if APR_HAS_ANSI_FS || defined(_WIN32_WCE) ELSE_WIN_OS_IS_ANSI { TIME_ZONE_INFORMATION tz; /* XXX: This code is simply *wrong*. The time converted will always * map to the *now current* status of daylight savings time. */ FileTimeToLocalFileTime(&ft, &localft); FileTimeToSystemTime(&localft, &st); SystemTimeToAprExpTime(result, &st); result->tm_usec = (apr_int32_t) (input % APR_USEC_PER_SEC); switch (GetTimeZoneInformation(&tz)) { case TIME_ZONE_ID_UNKNOWN: result->tm_isdst = 0; /* Bias = UTC - local time in minutes * tm_gmtoff is seconds east of UTC */ result->tm_gmtoff = tz.Bias * -60; break; case TIME_ZONE_ID_STANDARD: result->tm_isdst = 0; result->tm_gmtoff = (tz.Bias + tz.StandardBias) * -60; break; case TIME_ZONE_ID_DAYLIGHT: result->tm_isdst = 1; result->tm_gmtoff = (tz.Bias + tz.DaylightBias) * -60; break; default: /* noop */; } }#endif return APR_SUCCESS;}
开发者ID:ohmann,项目名称:checkapi,代码行数:84,
示例20: fal_stats//.........这里部分代码省略......... // Then, see if the case matches. String ffound(wFindData.cFileName); if( fname.subString( fname.length() - ffound.length() ) != ffound ) return false; } // ok, file exists and with matching case HANDLE temp = CreateFileW( wBuffer.w_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL ); if( (temp == INVALID_HANDLE_VALUE || temp == 0) && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED ) { AutoCString cBuffer( fname ); temp = CreateFile( cBuffer.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL ); } if( temp == INVALID_HANDLE_VALUE ) { // on win 95/98, we can't normally access directory data. DWORD attribs = GetFileAttributesW( wBuffer.w_str() ); if( attribs == INVALID_FILE_ATTRIBUTES && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED ) { AutoCString cBuffer( fname ); attribs = GetFileAttributes( cBuffer.c_str() ); } if( attribs == INVALID_FILE_ATTRIBUTES ) { return false; } if( (attribs & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY ) { sts.m_type = FileStat::t_dir; sts.m_attribs = attribs; sts.m_size = 0; sts.m_mtime = new TimeStamp(); sts.m_atime = new TimeStamp(); sts.m_ctime = new TimeStamp(); sts.m_owner = 0; /* user ID of owner */ sts.m_group = 0; /* group ID of owner */ return true; } return false; } BY_HANDLE_FILE_INFORMATION info; memset( &info, 0, sizeof( info ) ); GetFileInformationByHandle( temp, &info ); if( info.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY ) sts.m_type = FileStat::t_dir; else sts.m_type = FileStat::t_normal; FILETIME local_timing; SYSTEMTIME timing; FileTimeToLocalFileTime( &info.ftCreationTime, &local_timing ); FileTimeToSystemTime( &local_timing, &timing ); WinSystemTime mtime( timing ); if ( sts.m_ctime == 0 ) sts.m_ctime = new TimeStamp(); sts.m_ctime->fromSystemTime( mtime ); FileTimeToLocalFileTime( &info.ftLastAccessTime, &local_timing ); FileTimeToSystemTime( &local_timing, &mtime.m_time ); if ( sts.m_atime == 0 ) sts.m_atime = new TimeStamp(); sts.m_atime->fromSystemTime( mtime ); FileTimeToLocalFileTime( &info.ftLastWriteTime, &local_timing ); FileTimeToSystemTime( &local_timing, &mtime.m_time ); if ( sts.m_mtime == 0 ) sts.m_mtime = new TimeStamp(); sts.m_mtime->fromSystemTime( mtime ); sts.m_size = info.nFileSizeHigh; sts.m_size = sts.m_size << 32 | info.nFileSizeLow; sts.m_attribs = info.dwFileAttributes; sts.m_owner = 0; /* user ID of owner */ sts.m_group = 0; /* group ID of owner */ CloseHandle( temp ); return true;}
开发者ID:Klaim,项目名称:falcon,代码行数:101,
示例21: ACE_OS_TRACEstruct tm *ACE_OS::localtime_r (const time_t *t, struct tm *res){ ACE_OS_TRACE ("ACE_OS::localtime_r");#if defined (ACE_HAS_REENTRANT_FUNCTIONS) ACE_OSCALL_RETURN (::localtime_r (t, res), struct tm *, 0);#elif defined (ACE_HAS_TR24731_2005_CRT) ACE_SECURECRTCALL (localtime_s (res, t), struct tm *, 0, res); return res;#elif !defined (ACE_HAS_WINCE) ACE_OS_GUARD ACE_UNUSED_ARG (res); struct tm * res_ptr = 0; ACE_OSCALL (::localtime (t), struct tm *, 0, res_ptr); if (res_ptr == 0) return 0; else { *res = *res_ptr; return res; }#elif defined (ACE_HAS_WINCE) // This is really stupid, converting FILETIME to timeval back and // forth. It assumes FILETIME and DWORDLONG are the same structure // internally. TIME_ZONE_INFORMATION pTz; const unsigned short int __mon_yday[2][13] = { /* Normal years. */ { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }, /* Leap years. */ { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 } }; ULARGE_INTEGER _100ns; ::GetTimeZoneInformation (&pTz); _100ns.QuadPart = (DWORDLONG) *t * 10000 * 1000 + ACE_Time_Value::FILETIME_to_timval_skew; FILETIME file_time; file_time.dwLowDateTime = _100ns.LowPart; file_time.dwHighDateTime = _100ns.HighPart; FILETIME localtime; SYSTEMTIME systime; FileTimeToLocalFileTime (&file_time, &localtime); FileTimeToSystemTime (&localtime, &systime); res->tm_hour = systime.wHour; if(pTz.DaylightBias!=0) res->tm_isdst = 1; else res->tm_isdst = 1; int iLeap; iLeap = (res->tm_year % 4 == 0 && (res->tm_year% 100 != 0 || res->tm_year % 400 == 0)); // based on leap select which group to use res->tm_mday = systime.wDay; res->tm_min = systime.wMinute; res->tm_mon = systime.wMonth - 1; res->tm_sec = systime.wSecond; res->tm_wday = systime.wDayOfWeek; res->tm_yday = __mon_yday[iLeap][systime.wMonth] + systime.wDay; res->tm_year = systime.wYear;// this the correct year but bias the value to start at the 1900 res->tm_year = res->tm_year - 1900; return res;#else // @@ Same as ACE_OS::localtime (), you need to implement it // yourself. ACE_UNUSED_ARG (t); ACE_UNUSED_ARG (res); ACE_NOTSUP_RETURN (0);#endif /* ACE_HAS_REENTRANT_FUNCTIONS */}
开发者ID:08keelr,项目名称:TrinityCore,代码行数:79,
示例22: main/*********************************************************************** <<< [main] >>> ************************************************************************/int main( int argc, char* argv[] ){ int r = 0; int e; char str[256]; char left[128]; char right[128]; char* l_SetSentence; char* l_Path; char* p; time_t t; struct tm t2; size_t len; BOOL b; e = 1; // Get main parameters l_SetSentence = ( argc > 1 ? argv[1] : "now=now" ); l_Path = ( argc > 2 ? argv[2] : "" ); // Get left and right from l_SetSentence p = strchr( l_SetSentence, '=' ); if ( p == NULL ) strchr( l_SetSentence, '/0' ); strncpy_r( left, sizeof(left), l_SetSentence, (int)(p - l_SetSentence) ); #pragma warning(push) #pragma warning(disable: 4996) if ( *p == '/0' ) strcpy( right, "now" ); else strcpy_r( right, sizeof(right), p + 1 ); #pragma warning(pop) // if ( right == "now" ) str = now time if ( _stricmp( right, "now" ) == 0 ) { time( &t ); localtime_s( &t2, &t ); #pragma warning(push) #pragma warning(disable: 4996) strcpy( str, "Set " ); #pragma warning(pop) strcpy_r( str+4, sizeof(str)-4, left ); len = strlen( str ); strftime( str + len, sizeof(str) - len, "=%Y%m%d_%H%M", &t2 ); e = 0; } // if ( right == "update" ) str = update time stamp of l_Path else if ( _stricmp( right, "update" ) == 0 ) { HANDLE f; FILETIME ft; SYSTEMTIME st; e = 0; f = CreateFile( l_Path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL , 0 ); if ( f == NULL || f == INVALID_HANDLE_VALUE ) { e = 1; f = NULL; } if(!e){ b= GetFileTime( f, NULL, NULL, &ft ); if(!b)e=1; } if(!e){ b= FileTimeToLocalFileTime( &ft, &ft ); if(!b)e=1; } if(!e){ b= FileTimeToSystemTime( &ft, &st ); if(!b)e=1; } if ( f != NULL ) CloseHandle( f ); if(!e) stprintf_r( str, sizeof(str), _T("Set %s=%04d%02d%02d_%02d%02d"), left, st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute ); } // error output if(e) { stprintf_r( str, sizeof(str), _T("Set %s="), left ); } printf( "%s", str ); return r;}
开发者ID:TsNeko,项目名称:vbslib,代码行数:76,
示例23: GetWin32void RarTime::GetLocal(RarLocalTime *lt){#ifdef _WIN_ALL FILETIME ft; GetWin32(&ft); FILETIME lft; if (WinNT() < WNT_VISTA) { // SystemTimeToTzSpecificLocalTime based code produces 1 hour error on XP. FileTimeToLocalFileTime(&ft,&lft); } else { // We use these functions instead of FileTimeToLocalFileTime according to // MSDN recommendation: "To account for daylight saving time // when converting a file time to a local time ..." SYSTEMTIME st1,st2; FileTimeToSystemTime(&ft,&st1); SystemTimeToTzSpecificLocalTime(NULL,&st1,&st2); SystemTimeToFileTime(&st2,&lft); // Correct precision loss (low 4 decimal digits) in FileTimeToSystemTime. FILETIME rft; SystemTimeToFileTime(&st1,&rft); int64 Corrected=INT32TO64(ft.dwHighDateTime,ft.dwLowDateTime)- INT32TO64(rft.dwHighDateTime,rft.dwLowDateTime)+ INT32TO64(lft.dwHighDateTime,lft.dwLowDateTime); lft.dwLowDateTime=(DWORD)Corrected; lft.dwHighDateTime=(DWORD)(Corrected>>32); } SYSTEMTIME st; FileTimeToSystemTime(&lft,&st); lt->Year=st.wYear; lt->Month=st.wMonth; lt->Day=st.wDay; lt->Hour=st.wHour; lt->Minute=st.wMinute; lt->Second=st.wSecond; lt->wDay=st.wDayOfWeek; lt->yDay=lt->Day-1; static int mdays[12]={31,28,31,30,31,30,31,31,30,31,30,31}; for (uint I=1;I<lt->Month && I<=ASIZE(mdays);I++) lt->yDay+=mdays[I-1]; if (lt->Month>2 && IsLeapYear(lt->Year)) lt->yDay++; st.wMilliseconds=0; FILETIME zft; SystemTimeToFileTime(&st,&zft); // Calculate the time reminder, which is the part of time smaller // than 1 second, represented in 100-nanosecond intervals. lt->Reminder=INT32TO64(lft.dwHighDateTime,lft.dwLowDateTime)- INT32TO64(zft.dwHighDateTime,zft.dwLowDateTime);#else time_t ut=GetUnix(); struct tm *t; t=localtime(&ut); lt->Year=t->tm_year+1900; lt->Month=t->tm_mon+1; lt->Day=t->tm_mday; lt->Hour=t->tm_hour; lt->Minute=t->tm_min; lt->Second=t->tm_sec; lt->Reminder=itime % 10000000; lt->wDay=t->tm_wday; lt->yDay=t->tm_yday;#endif}
开发者ID:Hakansv,项目名称:OpenCPN,代码行数:74,
示例24: extract_archivevoid extract_archive(void *hWnd){ uint i; char arcname[MAX_PATH * 2]; char outdir[MAX_PATH * 2]; char outfilename[MAX_PATH * 2]; CUnImp Imp; IMP_ARCHIVE_INFO iai; DWORD dwAttribute; FILETIME ctime; FILETIME ctime_local; FILETIME mtime; FILETIME mtime_local; GetModuleFileName(GetModuleHandle(NULL),arcname,MAX_PATH * 2); if (Imp.open_archive(arcname,&iai) == false) { MessageBox((HWND)hWnd,"自己展 C++ FileTimeToSystemTime函数代码示例 C++ FileStream_Read函数代码示例
|