日期格式实验报告Word文件下载.docx
《日期格式实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《日期格式实验报告Word文件下载.docx(18页珍藏版)》请在冰点文库上搜索。
![日期格式实验报告Word文件下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/42948d13-9550-4ac3-9803-349e9d58f5ba/42948d13-9550-4ac3-9803-349e9d58f5ba1.gif)
Switch显示可选功能并选择
定义类
输入路径,打开文件失败显示失败,成功则显示其中日期内容
输入日期
输入今天的年月日
结束
调用类的成员函数来转换成为需要的格式
关闭文件
开始
是否非法
是否闰年
是,计算周几
否,计算周几
否否否
是是是
图1.程序流程图
四、主要算法
算法1:
输入日期;
将日期分别赋值给对应变量yy,mm,dd;
输出yy年mm月dd日。
算法2:
从文件输入日期并显示
打开(“请输入你需要打开的文件的路径:
”);
如果(打开路径失败)输出"
文件不能打开。
"
;
当(打开文件路径成功),获取文件中的日期字符,输出日期字符;
关闭文件。
算法3:
计算某个日期是星期几?
从键盘输入任意日期;
计算输入日期与1972年间的闰年个数d;
计算输入日期与1972年相距天数:
u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+本年已过天数;
如果是闰年,2月29天;
如果非闰年,2月28天;
计算周几:
i=(u+5)%7
程序代码:
#include<
iostream>
#include<
fstream>
usingnamespacestd;
classDate//定义日期类Date。
{
private:
intyear,month,day;
public:
voidsetDate(inty=2013,intm=5,intd=16);
//声明3个成员函数
voidshowDate1();
voidshowDate2();
};
voidDate:
:
setDate(inty,intm,intd)//获得待转换前的日期
year=y;
month=m;
day=d;
}
showDate1()//以"
年.月.日"
形式输出日期
{
cout<
<
year<
."
;
if(month<
10)cout<
'
0'
month<
if(day<
day<
endl;
showDate2()//以*年*月*日的形式输出日期
转换后的日期格式是:
年"
月"
日"
}
intmain()
Datea,b,c;
//定义a,b,c3个以Date定义的对象
//人性化界面
intinput;
请选择需要的功能:
1.将yy-mm-dd格式的日期转换成yy.mm.dd格式"
2.将yy-mm-dd和yy.mm.dd格式的日期转换成为yy年mm月dd日的格式"
3.将yy年mm月dd日格式的日期转换成为yy.mm.dd格式"
4.从文件输入日期并显示"
5.计算一个日期后一个天数是周几:
6.退出"
cin>
>
input;
loop:
switch(input)//功能选择
{
case1:
cout<
请输入一个日期,yy-mm-dd格式:
cin>
year>
month>
day;
if(month>
=13||day>
=32)
{
cout<
******输入非法******"
//输入非法
gotoloop;
//返回上一步输入操作
}
a.setDate(year,month,day);
cout<
您输入的日期是:
-"
a.showDate1();
break;
case2:
endl;
cin>
if(month>
{
cout<
}
b.setDate(year,month,day);
b.showDate2();
break;
case3:
请输入一个日期,yy年mm月dd日格式:
(yymmdd)"
c.setDate(year,month,day);
转换后的格式是:
c.showDate1();
case4:
char*j=newchar[10];
请输入你需要打开的文件的路径:
j;
ifstreamin(j);
charch;
if(!
in)
{
return-1;
}
该文件中的日期是:
while(in)
{
in.get(ch);
if(in)
ch;
}
in.close();
}
case5:
intw,e,t,i,u;
请输入一个日期,起始日期最早是1973.01.01:
intc,v,b;
c=w%4;
v=w%400;
b=w%100;
w>
e>
t;
switch(e)
{
u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t;
u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+31;
if(c=4)
if(v=400)
if(b=100)
u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+60;
elseu=u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+59;
u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+91;
elseu=u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+90;
u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+121;
elseu=u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+120;
case6:
u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+152;
elseu=u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+151;
case7:
u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+182;
elseu=u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+181;
case8:
u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+213;
elseu=u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+212;
case9:
u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+244;
elseu=u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+243;
case10:
u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+273;
elseu=u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+272;
case11:
u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+304;
elseu=u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+303;
case12:
u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+334;
elseu=u=((w-1972)*365+(w-1973)%4-(w-1973)/100+(w-1973)/400)+t+333;
}
i=(u+5)%7;
w<
e<
t<
if(i>
=1)cout<
是周"
i<
else
是周日"
********你选择退出*********谢谢使用"
return0;
五、测试
程序成功运行,进入选择界面如图所示:
退出系统如图8所示:
六、总结
操作非法的问题使用了goto语句来返回上一步;
编写程序时必须先用一个大概框架,不然编写的过程中思维很乱;
该程序使用了循环嵌套,类,输入输出流等知识点。
程序中功能只能一个一个的测试~不能连接起来,是严重的不足。