问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于C++编写万年历程序10

发布网友 发布时间:2023-09-21 21:36

我来回答

1个回答

热心网友 时间:2024-11-30 18:39

// abc4.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<stdio.h>
#include<time.h>
#include <iostream>

using namespace std;

void week(int y, int m, int d)//日期对于的星期
{
int c,w;
char *weekstr[] = {
"Sun","Mon","Tue","Wed","Thu","Fri","Sta"
};

c = y / 100 + 1;

if( m <= 2)
{
m = m + 12 ;
y = y - 1;
}

w = ( y + y / 4 + c / 4 - 2 * c + 26 * ( m + 1 ) / 10 + d - 1 ) % 7;

cout << weekstr[w];

//if(w == 0)
//cout << "Sun";
//else if (w == 1)
//cout<<"Mon";
//else if (w == 2)
//cout<<"Tue";
//else if (w == 3)
//cout<<"wed";
//else if (w == 4)
//cout<<"Thu";
//else if ( w == 5)
//cout<<"Fri";
//else
//cout << "Sta";
}
void Initdate(int &y, int &m, int &d, int &h, int &min, int &sec)//根据系统时间初始化万年历
{
time_t t;
time( &t );
struct tm * local_time = localtime( &t );
sec = local_time->tm_sec;
min = local_time->tm_min ;
h = local_time->tm_hour ;
d = local_time->tm_mday ;
m = local_time->tm_mon+1;
y = local_time->tm_year + 1900;
}
void printmonth(int y, int m, int d)//打印出给定时间对于月历
{
int ym[2][13]={
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}
};
int leap,i;
leap = ( y % 4 == 0 && y % 100 != 0 || y % 400 == 0);

for( i = 1 ; i < d ; i++ )
{
cout << i << " ";
week( y, m, i);
cout << endl;
}

cout << "★" ;

for(i = d; i <= ym[leap][m]; i++ )
{
cout << i << " ";
week( y, m, i);
cout << endl;
}
}
int judge(int y, int m, int d)//判断给定时间是否存在
{
int ym[2][13]={
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}
};
int leap, i;
if( y <= 0 || m < 1 || m > 12 )
return 0;
leap = ( y % 4 == 0 && y % 100 != 0 || y % 400 == 0 );

if( d < 1 || d > ym[leap][m] )
return 0;
else
return 1;
}
int search(int y, int m, int d)//查找打印给定时间对应阅历
{
if ( judge( y, m, d ) == 0 )
cout << "error date" ;
else
printmonth( y, m, d );
return 0;
}

int main()
{
int y, m, d, h, min, sec;//系统时间参数
int cho;//用户选项
int yt, mt, dt;//拥护输入的时间参数
while(1)
{
cout<<"≡≡≡≡≡≡万年历菜单选项≡≡≡≡≡"<<endl;
cout<<"请按编号选择功能"<<endl;
cout<<" ⑴查询当前时间"<<endl;
cout<<" ⑵显示本月月历"<<endl;
cout<<" ⑶查找给定日期对应的月历"<<endl;
cout<<" ⑷退出万年历"<<endl;
cin>>cho;

Initdate(y,m,d,h,min,sec);

switch(cho){
case 1: cout << "当前时间为" << y << "." << m << "." << d << "." << " " << h << ":" << min << ":" << sec << " ";
week(y,m,d);
break;
case 2: printmonth(y,m,d);break;
case 3: cout<<"请输入所要查找的日期,格式如 2000 7 5";
cin>>yt;
cin>>mt;
cin>>dt;
search(yt,mt,dt);
break;
case 4: exit(1);break;
default :cout<<"输入错误,请重新输入";
}
}
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
化学速率的理解问题 标准平衡常数Kθ公式「科普」 沼泽过滤用沙子还是石子 艾利和U10VP(1GB)主要功能 艾利和U10VP(512MB)重要参数 艾利和U10(1GB)重要参数 艾利和U10(1GB)艾利和U10(1GB)详细参数 艾利和U10(512MB)艾利和U10(512MB)详细参数 电信手机查详单能不能把上网的历史记录查出来 电信流量超支怎么查询 小学语文第五册第五单元考试试卷 关于C++的万年历程序1 c++万年历12月输出的有问题,默认第一天为一,会的大哥大姐... C++计算农历日期的问题 用c++编写的万年历代码15 小学五年级第五单元试卷 周公解梦梦见观音菩萨像 底下流水3 车子换机油,用半合成机油好还是全合成机油好啊? 汽车保养用全合成机油好还是半合成机油好775 解梦 梦见观音菩萨 但是 是吓人的2 ios版炉石玩不了 一点登陆就掉线怎么解决 大主宰手游ios版老掉线怎么回事 科目二侧方停车怎么打方向灯147 红米note为什么老自动重启,不仅老重启,还会有时候出现蓝屏... 科目二侧方停车倒车时需要打右转向灯吗229 小米盒子开机有时候出现重影 重启就没事了怎么回事 《我们都是坏孩子》电影,现在在哪个软件或者网站看得到? 侧方位停车出库,先打左转向灯还是先挂档55 司马迁属什么“家”?1 太守醉 中的 醉 有两层意思,一层是:酒喝醉了,另一层意思是...11 《我们都是坏孩子》怎样可以看到完整版 ios版炉石玩不了 一点登陆就掉线怎么解决 炉石传说iosios总是闪退 五泉山摸子泉的作文 炉石传说ios版每次登陆都显示你已经断开连接 游戏版本没有提... 小米4新机我刷了一次系统有时候会自动重启怎么回事 手机无限重启!但插上电源就没事,这是怎么回事 如何用matlab和数据采集卡建立通信 做俯卧撑手腕疼怎么办 怎么预防做俯卧撑手腕疼痛 C++年历显示(万年历) 天津市有没有口碑较好的学前班啊? 为啥炉石传说老是自己掉线,而且掉线后有时候还自己更新,但是已... 谁知道《我们都是坏孩子》这部电影现在在哪里可以看? 第五届中国十大童装品牌(全球十大童装品牌) ...演出里面和张缔出演的小女孩唱的英文歌曲叫什么名字?? 司马迁是什么时候出生的?13 司马迁是什么时期什么家???34 (我们都是坏孩子)这部电影在哪里看得到,谁有? ...商家是北京迪信通泰龙吉贸易有限公司。请问手机靠谱吗 成立公司需要提交哪些文件