time(NULL)与GetLocalTime获取当前时间

来源:互联网 发布:淘宝放心淘理赔 编辑:程序博客网 时间:2024/05/17 01:34

到#inlcude  <time.h>头文件里的一个time()函数和localtime()函数 
   
  函数原型:  time_t  time(time_t  *timer)     
  函数用途:  得到机器的日历时间或者设置日历时间     
  头  文  件:  time.h   
  输入参数:  timer:=NULL时,得到机器日历时间,=时间数值时  用于设置日历时间; 
   
  time_t是一个long类型 
   
  函数原型:  struct  tm  *localtime(const  time_t  *timer)   
  函数用途:  返回一个以tm结构表达的机器时间信息   
  头  文  件:  time.h   
  输入参数:  timer:使用time()函数获得的机器时间; 
   
  结构tm的定义为: 
  struct  tm 
  { 
  int tm_sec; /*  Seconds:  0-59  (K&R  says  0-61?)  */ 
  int tm_min; /*  Minutes:  0-59  */ 
  int tm_hour; /*  Hours  since  midnight:  0-23  */ 
  int tm_mday; /*  Day  of  the  month:  1-31  */ 
  int tm_mon; /*  Months  *since*  january:  0-11  */ 
  int tm_year; /*  Years  since  1900  */ 
  int tm_wday; /*  Days  since  Sunday  (0-6)  */ 
  int tm_yday; /*  Days  since  Jan.  1:  0-365  */ 
  int tm_isdst; /*  +1  Daylight  Savings  Time,  0  No  DST, 
    *  -1  don't  know  */ 
  }; 


举个例子:
#include "stdafx.h"
#include  <time.h> 
#include  <stdio.h> 
#include <wtypes.h>

int main(int argc, char* argv[])
{
 time_t  t; 
 tm  *tp; 
 
 t=time(NULL); 
//  既然time_t实际上是长整型,到未来的某一天,从一个时间点(一般是1970年1月1日0时0分0秒)
//  到那时的秒数(即日历时间)超出了长整形所能表示的数的范围怎么办?对time_t数据类型的值来说,
//  它所表示的时间不能晚于2038年1月18日19时14分07秒。为了能够表示更久远的时间,一些编译器厂商
//  引入了64位甚至更长的整形数来保存日历时间。比如微软在Visual C++中采用了__time64_t数据类型来
//  保存日历时间,并通过_time64()函数来获得日历时间(而不是通过使用32位字的time()函数),这样
//  就可以通过该数据类型保存3001年1月1日0时0分0秒(不包括该时间点)之前的时间。

 tp=localtime(&t); 
 printf("%d/%d/%d/n",tp->tm_mon+1,tp->tm_mday,tp->tm_year+1900); 
 printf("%d:%d:%d/n",tp->tm_hour,tp->tm_min,tp->tm_sec);
 
 SYSTEMTIME stCurTime = {0};
 ::GetLocalTime(&stCurTime);

// 注意区分GetSystemTime(&stCurTime);的区别
 printf("%d/%d/%d/n",stCurTime.wMonth,stCurTime.wDay,stCurTime.wYear); 
 printf("%d:%d:%d/n",stCurTime.wHour,stCurTime.wMinute,stCurTime.wSecond);
 return 0;
}

原创粉丝点击