C专家编程读书笔记——time_t知识链接

原创 2016年05月30日 13:34:50

time_t实际上是一个长整形的数据类型,用于记录从1970年1月1日0时0分0秒(UNIX出现的时间)起到当前一共多少秒的时间记录,然而对于time_t来说它表示的时间的最大值只能到2038 ,所以有一些厂商引入了64位甚至更长来保存时间。

我们通过查找头文件time.h来观察time_t的定义

#ifndef _TIME32_T_DEFINED
typedef _W64 long __time32_t;   /* 32-bit time value */
#define _TIME32_T_DEFINED
#endif  /* _TIME32_T_DEFINED */


#ifndef _TIME64_T_DEFINED
typedef __int64 __time64_t;     /* 64-bit time value */
#define _TIME64_T_DEFINED
#endif  /* _TIME64_T_DEFINED */


下面我们来使用time_t类型计算计算机的日期

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
//计算机的日期
#if 0
#include<time.h>
int main( )
{
	time_t max = 0x7FFFFFFF;
	printf( "time_t 能表示的最长的时间是:%s\n",ctime(&max));
	system( "pause");
	return 0;
}
#endif
//这是一个错误的结果。ctime()将时间转换成当地的时间。它和UTC并不一致,我们应该采用gmtime()来取得时间的最大值
#if 0
#include<time.h>
int main( )
{
	time_t max = 0x7FFFFFFF;
	//因为gmtime不能直接返回结果,我们使用asctime函数来取出结果。
	printf( "time_t 能表示的最长的时间是:%s\n", asctime(gmtime( &max )) );
	system("pause");
	return 0;
}
//时间值发生了变化是因为时差的问题造成的时间差值 **新西兰的时区称为该函数的一个BUG 
//该函数计算时间采用了夏令时,新西兰位于南半球。但新西兰的最东边在日界线的东面。他的时间应该比格林尼治//晚10小时而非早14小时!


对日期编程绝对不是一件很简单的事,需要我们认真的斟酌!

版权声明:本文为博主原创文章,未经博主允许不得转载。

C专家编程笔记

1.const 最有用之处就是用他来限定函数的形参,这样该函数将不会修改实参指针所指的数据。 2.sizeof(arr[0]) 的写法比sizeof(int)更具有很好的移植性。因为我们可以改数据类...
  • cwj649956781
  • cwj649956781
  • 2013年04月17日 18:00
  • 724

C专家编程整理笔记

C专家编程整理笔记 转自:> 1.关于限定符 C语言规定,合法的指针赋值两个操作数都是指向有限定符或无限定符的相容类型的指针。左边指针所指向的类型 必须是右边指针所指向...
  • pony_maggie
  • pony_maggie
  • 2015年06月28日 20:57
  • 1132

《C专家编程》:C程序运行时的数据结构(六)

编程语言的经典对立之一就是代码和数据的区别。但是有些语言如LISP把两者视为一体。但是C语言却维持着两者的区别。代码和数据的区别也可以认为是编译时和运行时的分界线。编译器的绝大部分工作更翻译代码有关,...
  • gogoky
  • gogoky
  • 2016年05月28日 16:59
  • 869

C专家编程--指针与数组(二) 数组 指针 联系

聊过数组和指针的区别,主要是对于数组和指针在内存中的访问方式加以区分,这篇博文则从更深层的角度剖析数组和指针的联系 如果你也对底层感兴趣、我向这篇文章会对你有所帮助, 什么时候数组和指针相同(When...
  • yusiguyuan
  • yusiguyuan
  • 2013年10月06日 20:58
  • 1074

C专家编程——读书笔记

1、总线错误与段错误 bus error(core dumped) 总线错误(信息已经转储) segmetation fault(core dumped)段错误(信息已经转储) 这种错误相信只要你在u...
  • luckywang1103
  • luckywang1103
  • 2013年10月24日 23:05
  • 798

<C专家编程>读书笔记

一、序        应该是每位程序员的第二本学习的C语言的书; 但是确实我第五本; 1、几个问题: 这五个问题,我只明白三个,有一个是模糊,一个是不懂...
  • beitiandijun
  • beitiandijun
  • 2013年03月26日 21:58
  • 1286

《C专家编程》读书笔记

前言:这是一本老书了,大概写于1994年,但是其中大部分内容至今仍可以参考。我不知道这本书为什么被称为“鱼书”,但是里面很多生动的例子都很引人入胜,可以说,这是读起来最轻松的一本技术书了,我用了两天一...
  • gogdizzy
  • gogdizzy
  • 2013年07月05日 09:32
  • 775

《C专家编程》:指针和数组的区别详解(四)

C语言编程新手常听到的说法之一就是“数组和指针是相同的”。不幸的是,这是一种非常危险的说法,并不完全正确。 一、什么是声明,什么是定义。 注意下面声明的区别: extern int...
  • gogoky
  • gogoky
  • 2016年05月24日 10:21
  • 936

[读书笔记]C专家编程

1.根据编译器设计者打思路发展而形成的特性: 数组下表从0而不是从1开始; C语言打基本数据类型直接与底层硬件相适应。(C语言一开始并不支持浮点类型,直到硬件系统能够直接支持浮点数之后才增加了...
  • wjk20120522
  • wjk20120522
  • 2014年06月29日 23:02
  • 702

《C专家编程》读书笔记

第一章:《C穿越时空的迷雾》 1、C语言的基本数据类型直接与底层硬件相对应,C语言中不允许嵌套函数。 2、register关键字:当某个变量需要经常被使用时,可以给变量加上register...
  • Hurricanezwf
  • Hurricanezwf
  • 2014年09月22日 20:18
  • 240
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C专家编程读书笔记——time_t知识链接
举报原因:
原因补充:

(最多只允许输入30个字)