欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談時間戳與日期時間互轉(zhuǎn)C語言

 更新時間:2016年06月13日 15:30:53   投稿:jingxian  
下面小編就為大家?guī)硪黄獪\談時間戳與日期時間互轉(zhuǎn)C語言。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

淺談時間戳與日期時間互轉(zhuǎn)C語言

/*
 * ctime.h
 *
 * Created on: May 19, 2016
 *    
*/
 
#ifndef CTIME_H_
#define CTIME_H_
#include "common/micro_type.h"
#define OFFSET_SECOND   946684800 /* ��1970/1/1/0/0/0��2000/1/1/0/0/0֮��������� */
//#define OFFSET_SECOND  0     /* ��2000/1/1/0/0/0��2000/1/1/0/0/0֮��������� */
#define SECOND_OF_DAY   86400   /* 1�������                   */
 
typedef struct date_time
{
  uint16  iYear;
  uint16  iMon;
  uint16  iDay;
 
  uint16  iHour;
  uint16  iMin;
  uint16  iSec;
  uint16  iMsec;
} DATE_TIME;
 
void GetDateTimeFromSecond(unsigned long lSec, DATE_TIME *tTime);
#endif /* CTIME_H_ */
 

/*
 * ctime.c
 *
 * Created on: May 19, 2016
 *   Author: root
 */
#include "common/micro_type.h"
#include "ctime.h"
uint8 DayOfMon[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
 
/* ������1970/1/1/0/0/0�����ʱ */
unsigned long GetSecondTime(DATE_TIME *date_time)
{
  uint16 iYear, iMon, iDay, iHour, iMin, iSec;
  iYear = date_time->iYear;
  iMon = date_time->iMon;
  iDay = date_time->iDay;
  iHour = date_time->iHour;
  iMin = date_time->iMin;
  iSec = date_time->iSec;
 
  uint16 i, Cyear=0;
  unsigned long CountDay=0;
 
  for(i=1970; i<iYear; i++)   /* ͳ��1970�굽����֮ǰ�������� */
  {
    if(((i%4==0) && (i%100!=0)) || (i%400==0)) Cyear++;
  }
  CountDay = Cyear * 366 + (iYear-1970-Cyear) * 365;
  for(i=1; i<iMon; i++)
  {
    if((i==2) && (((iYear%4==0)&&(iYear%100!=0)) || (iYear%400==0)))
      CountDay += 29;
    else
      CountDay += DayOfMon[i-1];
  }
  CountDay += (iDay-1);
 
  CountDay = CountDay*SECOND_OF_DAY + (unsigned long)iHour*3600 + (unsigned long)iMin*60 + iSec;
  return CountDay;
}
 
/* ����ʱ�������1970/1/1/0/0������ */
void GetDateTimeFromSecond(unsigned long lSec, DATE_TIME *tTime)
{
  uint16 i,j,iDay;
  unsigned long lDay;
 
  lDay = lSec / SECOND_OF_DAY;    /* תΪ�������ʱ�� */
  lSec = lSec % SECOND_OF_DAY;
 
  i = 1970;
  while(lDay > 365)
  {
   if(((i%4==0)&&(i%100!=0)) || (i%400==0))  /* ���� */
    lDay -= 366;
   else
    lDay -= 365;
   i++;
  }
  if((lDay == 365) && !(((i%4==0)&&(i%100!=0)) || (i%400==0))) /* ƽ�� */
  {
   lDay -= 365;
   i++;
  }
  tTime->iYear = i;   /* �õ���� */
  for(j=0;j<12;j++)   /* �����·� */
  {
   if((j==1) && (((i%4==0)&&(i%100!=0)) || (i%400==0)))
    iDay = 29;
   else
    iDay = DayOfMon[j];
   if(lDay >= iDay) lDay -= iDay;
   else break;
  }
  tTime->iMon = j+1;
  tTime->iDay = lDay+1;
  tTime->iHour = ((lSec / 3600)+8)%24;//這里注意,世界時間已經(jīng)加上北京時間差8,
  tTime->iMin = (lSec % 3600) / 60;
  tTime->iSec = (lSec % 3600) % 60;
}

以上這篇淺談時間戳與日期時間互轉(zhuǎn)C語言就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++基礎(chǔ)入門教程(九):函數(shù)指針之回調(diào)

    C++基礎(chǔ)入門教程(九):函數(shù)指針之回調(diào)

    這篇文章主要介紹了C++基礎(chǔ)入門教程(九):函數(shù)指針之回調(diào),本文講解了函數(shù)的地址、聲明函數(shù)指針、歷史原因、typedef挽救復(fù)雜的函數(shù)指針等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • C/C++中數(shù)據(jù)類型轉(zhuǎn)換詳解及其作用介紹

    C/C++中數(shù)據(jù)類型轉(zhuǎn)換詳解及其作用介紹

    這篇文章主要介紹了C/C++中數(shù)據(jù)類型轉(zhuǎn)換詳解及其作用,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • C++指針與引用的區(qū)別案例詳解

    C++指針與引用的區(qū)別案例詳解

    這篇文章主要介紹了C++指針與引用的區(qū)別案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • c++特殊構(gòu)造函數(shù)詳解

    c++特殊構(gòu)造函數(shù)詳解

    大家好,本篇文章主要講的是c++特殊構(gòu)造函數(shù)詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • 深入了解C語言冒泡排序優(yōu)解

    深入了解C語言冒泡排序優(yōu)解

    這篇文章主要介紹了C語言冒泡排序法的實現(xiàn)(升序排序法),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • VC++ 字符串String MD5計算小工具 VS2008工程

    VC++ 字符串String MD5計算小工具 VS2008工程

    基于字符串加密的MD5算法,VS2008 VC++,多字節(jié)編譯工程。主要代碼如下,實現(xiàn)了ANSI字符串加密與Unicode字符串加密,需要的朋友可以參考下
    2017-07-07
  • C++之普通成員函數(shù)、虛函數(shù)以及純虛函數(shù)的區(qū)別與用法要點

    C++之普通成員函數(shù)、虛函數(shù)以及純虛函數(shù)的區(qū)別與用法要點

    本篇文章主要介紹了C++中的普通成員函數(shù)、虛函數(shù)以及純虛函數(shù),非常的詳細,有需要的朋友可以參考下
    2015-07-07
  • C++中vector容器的常用操作方法實例總結(jié)

    C++中vector容器的常用操作方法實例總結(jié)

    vector容器一般被用作創(chuàng)建動態(tài)數(shù)組,動態(tài)數(shù)組就像Python中的list結(jié)構(gòu)一樣,可以比普通數(shù)組擁有更豐富操作方法,下面就為大家整理了一些最常用的操作:
    2016-05-05
  • 一元多項式加法運算

    一元多項式加法運算

    今天小編就為大家分享一篇關(guān)于一元多項式加法運算,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 深入淺出理解C語言初識結(jié)構(gòu)體

    深入淺出理解C語言初識結(jié)構(gòu)體

    C?數(shù)組允許定義可存儲相同類型數(shù)據(jù)項的變量,結(jié)構(gòu)是?C?編程中另一種用戶自定義的可用的數(shù)據(jù)類型,它允許你存儲不同類型的數(shù)據(jù)項,本篇讓我們來了解C?的結(jié)構(gòu)體
    2022-02-02

最新評論