时间戳和日期时间互换程序,及计算日期对应星期几,适用与单片机、下位机开发

此函数转换时间戳的常数为秒,需要转换毫秒、微秒的时间戳要转换为秒后就可用正常使用了

定义时间戳天与月常量

/******* timestamp时间戳函数 开始**********/
#define  SECOND_OF_DAY  86400   //一天多少秒
unsigned char DayOfMon[]={
   31,28,31,30,31,30,31,31,30,31,30,31};

定义时间结构

struct StructTM
{
   
  int tm_sec;
  int tm_min;
  int tm_hour;
  int tm_day;
  int tm_mon;
  int tm_year;
  int tm_week;
};

时间结构赋值

StructTM StTime;//声明时间结构变量
StTime.tm_year = 2022;
StTime.tm_mon  = 6;
StTime.tm_day  = 16;
StTime.tm_hour = 20;
StTime.tm_min  = 0;
StTime.tm_sec  = 21;

时区常数,北京时间相对世界时间相差8个时区,使用得以下常数

unsigned long timeZone =8*3600;

通过时间结构体计算出星期几

/********************************************************************************************************
* FunctionName   : printTime()
* Description    : 从日期中计算出星期几
* EntryParameter : 时间结构地址.
* ReturnValue    : 星期一为0,...,星期日为6
********************************************************************************************************/
int GetWeekFromDate(struct StructTM *tm) {
   
  //在公式中day表示日期中的日数,mon表示月份数,year表示年数。
  //注意:在公式中有个与其他公式不同的地方:
  //把1月和2月看成是上一年的13月和14月,例:如果是2021-1-11则换算成:2020-13-11来代入公式计算。
  int iWeek=  (tm->tm_mon==1||tm->tm_mon==2)? 
  (tm->tm_day+2*(tm->tm_mon+12)+3*(tm->tm_mon+
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值