下面是题目与提示:
【基本功能】
(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) |