Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2342415
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:00:45

下面是题目与提示:
【基本功能】
(1)本课题不需要从键盘读如数据。
(2)读系统时间,计算生成当天的日期。
(3)计算生成当月的日历,打印当月的日历,输出到以自己学号命名的文件中(如:thismonth_B05060512.txt),同时也在屏幕显示。输出的格式如下(假设当天日期为2005年12月20日):
Calendar
                                December
    ________________________________
          Sun Mon Tue Wed Thu Fri Sat
1   2   3
4   5   6   7   8   9  10
11  12  13  14  15  16  17
18  19  20  21  22  23  24
25  26  27  28  29  30  31
今天是: 2005年12月20日,星期二
当前时间是:22时40分43秒
   (4)计算生成当年的日历,打印当年的日历,以每行两个月的形式输出(如下),向屏幕输出,也写入文件中(calendar_年号_B05060512.txt)。
*****  *****  *****  *****
*  *   *  *   *  *
*****  *   *  *   *  *****
*      *   *  *   *      *
*****  *****  *****  *****
              Jan                                  Feb
________________________________     ________________________________
Sun Mon Tue Wed Thu Fri Sat          Sun Mon Tue Wed Thu Fri Sat
                          1                    1   2   3   4   5
  2   3   4   5   6   7   8            6   7   8   9  10  11  12
  9  10  11  12  13  14  15           13  14  15  16  17  18  19
 16  17  18  19  20  21  22           20  21  22  23  24  25  26
 23  24  25  26  27  28  29           27  28
 30  31
(5)万年历,根据输入的年号,打印当年的日历,以每行两个月的形式输出(如上),向屏幕输出,也写入文件中(calendar_年号_B05060512.txt),注意闰年的考虑。
【算法提示】
在C/C++中对日期和时间操作所用到的数据结构和函数,下面将作简单介绍,这些相关的函数和数据结构的声明都在time.h文件中。详细的技术资料请参考C语言手册。
(1)日历时间
Calendar Time:日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。这个标准时间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标准时间点是不变的,该编译系统中的时间对应的日历时间都通过该标准时间点来衡量。
日历时间在系统中是一个long int型数据。
(2)标准时间
标准时间也就是我们通常所使用的年月日小时分钟秒等,在标准C/C++中,我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下:
#ifndef _TM_DEFINED
struct tm
{
     int tm_sec;     /* 秒 - 取值区间为[0,59] */
     int tm_min;     /* 分 - 取值区间为[0,59] */
     int tm_hour;    /* 时 - 取值区间为[0,23] */
     int tm_mday;    /* 一个月中的日期 - 取值区间为[1,31] */
     int tm_mon;     /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */
     int tm_year;    /* 年份,其值等于实际年份减去1900 */
    int tm_wday;    /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */
int tm_yday;    /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
     int tm_isdst;   /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/
 };
#define _TM_DEFINED
#endif
(3)如何获取当前日期
这里介绍两个函数
time()函数获得当前的日历时间(Calendar Time),其原型为:
long time( long * timer );
localtime()函数是将日历时间转化为本地时间,其原型为:
struct tm * localtime( const time_t * timer );
我们可以先用time()函数获得当前的日历时间(long int型数),再将之通过localtime()转换为我们所需要的日期格式等等就可以了。例子如下(在VC++6.0环境下编译通过):
// examp1e.cpp : This example shows that how date information is got.
#include
#include
int main(void)
{
struct tm *local;
long t;
time(&t);
cout << "The Calendar Time now is:" << t << endl ;
local = localtime(&t);
local->tm_year = local->tm_year + 1900;
local->tm_mon ++;
cout << "Today is: " << local->tm_year << "-" << local->tm_mon
<< "-" << local->tm_mday << "  " << local->tm_hour
<< ":" << local->tm_min  << ":" << local->tm_sec
<< "  " << local->tm_wday << endl;
return 0;
}
运行结果如下:
The Calendar Time now is:1135176221
Today is: 2005-12-21  22:43:41  3

程序比较长。 您能看下来就已经很感谢了。
如果能帮帮忙, 小弟感激不尽

--------------------next---------------------

阅读(1336) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~