生活随笔
收集整理的這篇文章主要介紹了
用时间戳判断两个时间是否在同一天和时区转换问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用時間戳判斷兩個時間是否在同一天和時區轉換問題
//用時間戳判斷兩個時間是否在同一天和時區轉換問題#include "stdafx.h"
#include<stdio.h>
#include<time.h>
#include<stdlib.h>#pragma warning(disable:4996)
//是否開啟DEBUG模式
#define _DEBUG_ 1
#if _DEBUG_
#define ACCLOG(...) printf(__VA_ARGS__)
#else
#define ACCLOG(...)
#endif
//檢驗是否過期
int check_day()
{//myTime:1526537851//userTime:1526488911char userTime[11] = "1526488911";//從二維碼掃到的時間戳,2018/5/17 0:41:51//char myTime[11] = "1526537851";//硬件保存的時間戳(解密后) ,2018/5/17 14:17:31char myTime[11] = "1526568851"; //2018/5/17 22:54:11time_t t1, t2;struct tm *p1, *p2;char date1[9] = "";char h1[3] = "";t1 = atoi(myTime) + 28000;//time(&t1);p1 = gmtime(&t1);ACCLOG("myTime:%s\n", myTime);strftime(date1, sizeof(date1), "%Y%m%d", p1);strftime(h1, sizeof(h1), "%H", p1);char date2[9] = "";char h2[3] = "";t2 = atoi(userTime) + 28000;//time(&t2);p2 = gmtime(&t2);strftime(date2, sizeof(date2), "%Y%m%d", p2);strftime(h2, sizeof(h2), "%H", p2);ACCLOG("userTime:%s\n", userTime);ACCLOG("date1:%s\ndate2:%s\nh1:%s\nh2:%s\n", date1, date2, h1, h2);//打印本地時間time_t rawtime;struct tm * timeinfo;char buffer[128];time(&rawtime);printf("%ld\n", rawtime);timeinfo = localtime(&rawtime);strftime(buffer, sizeof(buffer), "Now is %Y/%m/%d %H:%M:%S", timeinfo);ACCLOG("%s\n", buffer);if (atoi(date1) == atoi(date2) && atoi(h1) +8 <= 23)如果給myTime時間戳加了28000秒(8H)這里就不用加8H了{printf("時間在開門范圍內,去判斷密碼是否正確\n");return 1;}else {printf("時間不在范圍內\n");return 0;}
}
//myTime:1526466422 2018/5/16 18:27:2
//userTime:1526422882 2018/5/16 6:21:22int main(void)
{if (check_day() == 1){ACCLOG("check_password............\n");}else{ACCLOG("time is over...\n");}getchar();return 0;
}
結果:
總結
以上是生活随笔為你收集整理的用时间戳判断两个时间是否在同一天和时区转换问题的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。