DSP学习 -- GPS时间校准电脑系统时间

一、格林威治时间转北京时间

GPS时间为格林威治时间,而 北京时间=GMT时间+8小时。
两者转换的算法:
参看:C语言实现格林威治时间转北京时间

参看:STM32开发 – UTC、UNIX时间戳、北京时间之间的转换

日期数据结构定义:

typedef struct
{
	uint16_t year;
	uint8_t month;
	uint8_t day;
	uint8_t hour;
	uint8_t minute;
	uint8_t second;
}time_t;

转换实现:

void UTCToBeijing(time_t* time)
{
	uint8_t days = 0;
	if (time->month == 1 || time->month == 3 || time->month == 5 || time->month == 7 || time->month == 8 || time->month == 10 || time->month == 12)
	{
		days = 31;
	}
	else if (time->month == 4 || time->month == 6 || time->month == 9 || time->month == 11)
	{
		days = 30;
	}
	else if (time->month == 2)
	{
		if ((time->year % 400 == 0) || ((time->year % 4 == 0) && (time->year % 100 != 0))) /* 判断平年还是闰年 */
		{
			days = 29;
		}
		else
		{
			days = 28;
		}
	}
	time->hour += 8;                 /* 北京时间比格林威治时间快8小时 */
	if (time->hour >= 24)            /* 跨天 */
	{
		time->hour -= 24;
		time->day++;
		if (time->day > days)        /* 跨月 */
		{
			time->day = 1;
			time->month++;
			if (time->month > 12)    /* 跨年 */
			{
				time->year++;
			}
		}
	}
}

二、设置系统时间

使用 date time这两个DOC指令
例如:

date 2020.11.11 & time 11:11:11

三、Visual Studio编译生成的应用以管理员身份运行配置

如果需要以管理员身份运行,需要如下配置:
属性->链接器->清单文件->UAC执行级别
选择 requireAdministrator (/level=‘requireAdministrator’)

在这里插入图片描述

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师:上身试试 返回首页
实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值