C语言辅导-时间和日期_第1页
C语言辅导-时间和日期_第2页
C语言辅导-时间和日期_第3页
C语言辅导-时间和日期_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言辅导:时间和日期有好几个缘由使你想把日期转换成单个数字,包括为了节约存储空间或进展简洁的比拟。此外,你或许想用转换所得的数字作为编程构造中的一局部。无论如何,假如你想用单个数字表示日期,你就需要问一下自己为什么要这样做,以及你想怎样处理转换所得的数字。答复这些问题将有助于你确定哪种转换方法。首先,请看一个简洁的例子:

#include

#include

main()

{

intmonth,day,year;

unsignedlongresult;

printf(“EnterMonth,Day,Year:\n“);

fflush(stdout);

scanf(“%d%d%d“,

result|=month

#include

main()

{

intmonth,day.year;

unsignedlongresult;

/*prompttheuserforinput*/

printf(“EnterMonth,Day,Year:\n“);

fflush(stdout);

scanf(“%d%d%d“,

/*Makealloftherangesbeginatzero*/

--month;

--day;

year-=1975;

/*Makesureallofthedateelementsareinproperrange*/

if(

(year127)||/*Keeptheyearinrange*/

(monthll)||/*Keepthemonthinrange*/

(day31)/*Keepthedayinrange*/

)

{

printf(“Youenteredanimproperdate!\n“);

exit(1);

}

result=year;

result|=month<<7;

result|=day<<11;

printf(“Theresultis:%ul.\n“,result);

}

这个程序并没有考虑到有些月份不到31天的状况,但只需作一点小小的改良就可弥补这一缺陷。留意,当你限制了日期的范围后,在对月值和日值进展移位时,要少移几位。

上述程序所生成的数字仍旧不能用来对日期进展排序。为了解决这个问题,你需要留意到这个数字最左边的几位是高于最右边的几位的有效位。因此,你应当把日期中的有效局部存入最左边的几位中。为此,上述程序中把二个变量安置到数字中的那局部代码应当改为如下形式:

result=day;

result|=month<<5;

result|=year<<9;

以下是用几个例如日期测试上述修改的结果:

EnterMonth,Day,Year:

11221980

Theresultis:110771.

EnterMonth,Day,Year:

12231980

Theresultis:116211.

EnterMonth,Day,Year;

8151998

T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论