SYSTEMTIME 与 time_t 之间的转换,计算2个SYSTEMTIME的时间差

[cpp] view plain copy

  1. time_t systemtime_to_time_t(const SYSTEMTIME& st)
  2. {
  3. struct tm gm = {st.wSecond, st.wMinute, st.wHour, st.wDay, st.wMonth-1, st.wYear-1900, st.wDayOfWeek, 0, 0};
  4. return mktime(&gm);
  5. }
  6. SYSTEMTIME time_t_to_systemtime(time_t t)
  7. {
  8. tm temptm = *localtime(&t);
  9. SYSTEMTIME st = {1900 + temptm.tm_year,
  10. 1 + temptm.tm_mon,
  11. temptm.tm_wday,
  12. temptm.tm_mday,
  13. temptm.tm_hour,
  14. temptm.tm_min,
  15. temptm.tm_sec,
  16. 0};
  17. return st;
  18. }

https://blog.csdn.net/hellokandy/article/details/51329446

MFC版本的计算两个SYSTEMTIME之间的时间差,返回毫秒:

[cpp] view plain copy

  1. __int64 TimeDiff(SYSTEMTIME left, SYSTEMTIME right)
  2. {
  3. CTime tmLeft(left.wYear, left.wMonth, left.wDay, 0, 0, 0);
  4. CTime tmRight(right.wYear, right.wMonth, right.wDay, 0, 0, 0);
  5. CTimeSpan sp = tmLeft - tmRight;
  6. long MillisecondsL = (left.wHour*3600 + left.wMinute*60 + left.wSecond)*1000 + left.wMilliseconds;
  7. long MillisecondsR = (right.wHour*3600 + right.wMinute*60 + right.wSecond)*1000 + right.wMilliseconds;
  8. return  (__int64)sp.GetDays()*86400000 + (MillisecondsL - MillisecondsR);//此处返回毫秒
  9. }

https://blog.csdn.net/hellokandy/article/details/51329183

原文地址:https://www.cnblogs.com/findumars/p/8732308.html

时间: 2024-10-13 07:25:35

SYSTEMTIME 与 time_t 之间的转换,计算2个SYSTEMTIME的时间差的相关文章

java基础之基本数据类型及之间的转换

 1.布尔型(boolean) :true/false,不可以以0或非0的数字代替:不能进行数据之间的转换.   2.整数类型 ** 整型默认为int型,而long类型表示的范围要超出int表数范围,所以,声明long类型时,常量后要加L(l). 如:long l1=12345678  //  数值在int范围之内,还不会出错 long l2=8888888888;//  数值在int范围之外,会出错 long l3=8888888888L; //正确 3.浮点类型:      * 浮点型默认为

用Python内置函数轻松实现各种进制数之间的转换

0.说明 9个月没有写过Python了,这9个月都在华为的ICT知识海洋里遨游,前段时间刚刚通过了HCIE的认证,想着还是喜欢Python和Linux多些,所以又回来了,后面会有越来越多的Python干货分享给大家,比如后面会打算写一个完整的Linux主机监控项目的教程给初入门的朋友,相信这会是非常不错的体验. 那段时间,曾经有些时候,我需要对各种进制进行转换,因为虽然那会不写Python了,但是还是用Python自带的解释器用来做简单的数学计算,很方便. 在网上找,看有没有方法可以实现各种进制

移动端适配方案以及rem和px之间的转换

背景 开发移动端H5页面 面对不同分辨率的手机 面对不同屏幕尺寸的手机 视觉稿 在前端开发之前,视觉MM会给我们一个psd文件,称之为视觉稿. 对于移动端开发而言,为了做到页面高清的效果,视觉稿的规范往往会遵循以下两点: 1)首先,选取一款手机的屏幕宽高作为基准(以前是iPhone4的320×480,现在更多的是iphone6的375×667). 2)对于retina屏幕(如: dpr=2),为了达到高清效果,视觉稿的画布大小会是基准的2倍,也就是说像素点个数是原来的4倍(对iphone6而言:

JAVA基本数据类型及之间的转换

一.数据类型  1.布尔型(boolean) :true/false,不可以以0或非0的数字代替:不能进行数据之间的转换.   2.整数类型 ** 整型默认为int型,而long类型表示的范围要超出int表数范围,所以,声明long类型时,常量后要加L(l). 如:long l1=12345678  //  数值在int范围之内,还不会出错 long l2=8888888888;//  数值在int范围之外,会出错 long l3=8888888888L; //正确 3.浮点类型:      *

Swift数字类型之间的转换

Swift数字类型之间的转换Swift是一种安全的语言,对于类型的检查非常严格,不同类型之间不能随便转换.一.整型之间的转换在C和Objective-C等其他语言中,整型之间有两种转换方法:从小范围数到大范围数转换是自动的:从大范围数到小范围数需要强制类型转换,有可能造成数据精度的丢失.而在Swift中这两种方法是行不通的,我们需要通过一些函数进行显式地转换,代码如下: let historyScore:UInt8 = 90 let englishScore:UInt16 = 130 let t

世界坐标空间与观察坐标系之间的转换

1.世界坐标空间与观察坐标系之间的转换 已知:观察坐标系相对世界坐标系的u,v,w轴与起点q,将世界坐标系中一点变换到观察坐标系 使用左手坐标系推导 u = ( ux , uy , uz , 0 ) v = ( vx , vy , vz , 0 ) w = (wx , wy , wz , 0 ) q = ( qx , qy , qz , 1 ) 观察坐标系中的点可以表示为: p = au+bv+cw+q 即为 (a,b,c,1) 展开上述公式 p =  a * ux * x + a * uy *

二进制 八进制 十进制 十六进制之间的转换

一. 十进制与二进制之间的转换 (1)十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数.下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(10101000)2 分析:第一步:将168除以2,商84,余数为0.  第二步:将商84除以2,商42余数为0. 

理科的至尊思想:进制之间的转换

1) 二进制转换十进制(不分整数和小数) 方法: 按权相加法,即将二进制每位上的数乘以权,然后相加之和即是十进制数.例 将二进制数101.101转换为十进制数. 结果:(101.101)2=(5.625)10 注意: 要知道二进制的权值 要能求出每位的值 2) 十进制转换二进制{整数:小数} 整数: 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数

Android中实现滑动翻页—使用ViewFlipper(dp和px之间进行转换)

Android中实现滑动翻页—使用ViewFlipper(dp和px之间进行转换) Android中dp和px之间进行转换 在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip).一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致.但是在代码中,如何处理呢?很多控件的方法中都只提供了设置px的方法,例如setPadding,并没有提供设置dp的方法.这个时候,如果需要设置dp的话,就要将dp转换成px了. 以下是一个应用类,方便进行px和dp之间的转换.