我有一个以SYSTEMTIME表示的时间值,我想从中减去1小时,并获取新获得的SYSTEMTIME。我希望转换应考虑加减法的日期更改或月份更改或e1年更改。
如果有一些Windows API在SYSTEMTIME上进行算术运算,有人可以帮我吗
最佳答案
如果您使用的是C#(或VB.NET或ASP.NET),则可以使用
DateTime dt = DateTime.Now.AddHours(1);
您可以使用负数减去:
DateTime dt = DateTime.Now.AddHours(-1);
编辑:
我从this post中提取一个请求
SYSTEMTIME add( SYSTEMTIME s, double seconds ) {
FILETIME f;
SystemTimeToFileTime( &s, &f );
ULARGE_INTEGER u ;
memcpy( &u , &f , sizeof( u ) );
const double c_dSecondsPer100nsInterval = 100. * 1.E-9;
u.QuadPart += seconds / c_dSecondsPer100nsInterval;
memcpy( &f, &u, sizeof( f ) );
FileTimeToSystemTime( &f, &s );
return s;
}
如果要增加一个小时,请使用
SYSTEMTIME s2 = add(s1, 60*60)