c++日历v1.0版本
#include<iostream>
# include<fstream>
#include<time.h>
#include<string>
#include<iomanip>
using namespace std;
void bangzhu();
void xianzaishijian();
void chakanrili();
int runnian(int);
int tianshu(int,int);
void shuru();
int shurupanduan(int ,int,int);
void shuchu();
void shuxiang(int);
void shuchushuxiang();
void dijitian();
void nianli();
int main() //主函数
{
int a;
bangzhu();
while(cin>>a)
{if(a==0)
break;
switch(a)
{//case 0: break;break;
case 1: xianzaishijian();break;
case 2: chakanrili();break;
case 3: shuchushuxiang();break;
case 4: dijitian();break;
case 5: nianli();break; case 9: bangzhu();break;} }
return 0;} void xianzaishijian() //输出现在时间以及当前月份日历
{
time_t t = time(NULL);
struct tm *local = localtime(&t);
int year = local -> tm_year + 1900;
int month = local -> tm_mon + 1;
int day = local -> tm_mday;
int hour = local -> tm_hour;
int minute = local -> tm_min;
int second = local -> tm_sec; int d,y,m,l;
y=year;
m=month;
d=day;
int z=1;
l=shurupanduan(y, m,z);
while(l==0)
{cin>>y>>m;
l=shurupanduan(y,m,z);
}
int q,s,i,sum=0;
for(i=1905;i<y;i++)
{sum+=365;
s=runnian(i);
if(s==1)
sum++;}
for(i=1;i<m;i++)
{s=runnian(y);
switch(i)
{case 1:q=31;break;
case 2:q=28;break;
case 3:q=31;break;
case 5:q=31;break;
case 7:q=31;break;
case 8:q=31;break;
case 10:q=31;break;
case 12:q=31;break;
case 4:q=30;break;
case 6:q=30;break;
case 9:q=30;break;
case 11:q=30;break;}
sum+=q;
}
if(s==1&&m>2)
sum++;
switch(m)
{case 1:q=31;break;
case 2:q=28;break;
case 3:q=31;break;
case 5:q=31;break;
case 7:q=31;break;
case 8:q=31;break;
case 10:q=31;break;
case 12:q=31;break;
case 4:q=30;break;
case 6:q=30;break;
case 9:q=30;break;
case 11:q=30;break;}
s=runnian(y);
if(s==1&&m==2)
q++;
int u,w;
u=sum%7;
w=3*u;
sum=sum+d;
d--;
d=sum%7; cout <<"当前时间: "<<endl<<year<<"年"<<month<<"月"<<day<<"日"<<' '<<"星期"; switch(d)
{case 0:cout<<"日";break;
case 1:cout<<"一";break;
case 2:cout<<"二";break;
case 3:cout<<"三";break;
case 4:cout<<"四";break;
case 5:cout<<"五";break;
case 6:cout<<"六";break;
}
cout<<" ";
shuxiang(year);
cout <<endl<<" "<<hour<<":"<<minute<<":"<<second<<endl<<endl;
cout<<" 日 一 二 三 四 五 六"<<endl;
for(i=1;i<=w;i++)
cout<<' ';
for(i=1;i<=q;i++)
{if(u==6)
{cout<<fixed<<setw(2)<<i<<" "<<endl;;
u=-1;}
else cout<<fixed<<setw(2)<<i<<' '; u++;} }
void bangzhu() //操作指令提示
{ cout<<"请输入以下指令"<<endl<<endl; cout<<" 1.输出当前时间 " <<endl;
cout<<"============================"<<endl;
cout<<" 2.查看指定月份日历 "<<endl;
cout<<"============================"<<endl;
cout<<" 3.查看属相 "<<endl;
cout<<"============================"<<endl;
cout<<" 4,计算指定日期是一年中的第几天"<<endl;
cout<<"============================"<<endl;
cout<<" 5,显示输出任何一年的年历,并写入一文本"<<endl;
cout<<"============================"<<endl;
cout<<" 9.输出指令集"<<endl;
cout<<"============================"<<endl;
cout<<" 0.结束本程序 "<<endl ;
cout<<"============================"<<endl;
} int shurupanduan(int a,int b,int c=1) //判断输入年月是否正确
{int l=1,q;
if(a<=0||b<=0||b>12||c<0)
{l=0;
cout<<"您的输入有误请重新输入"<<endl;}
switch(b)
{case 1:q=31;break;
case 2:q=28;break;
case 3:q=31;break;
case 5:q=31;break;
case 7:q=31;break;
case 8:q=31;break;
case 10:q=31;break;
case 12:q=31;break;
case 4:q=30;break;
case 6:q=30;break;
case 9:q=30;break;
case 11:q=30;break;}
if(c>q)
{l=0;
cout<<"您的输入有误请重新输入"<<endl;} return l;} int runnian(int a) //判断是是否为闰年
{int l=0;
if((a%4==0&&a%100!=0)||(a%400==0))
l=1;
return l;
} void chakanrili() //查看指定月份日历
{cout<<"请输入年月中间用空格隔开如2013 1"<<endl;
int y,m,l;
cin>>y>>m;
int z=1;
l=shurupanduan(y,m,z);
while(l==0)
{cin>>y>>m;
l=shurupanduan(y,m,z);
}
int q,s,i,sum=0;
for(i=1905;i<y;i++)
{sum+=365;
s=runnian(i);
if(s==1)
sum++;}
for(i=1;i<m;i++)
{s=runnian(y);
switch(i)
{case 1:q=31;break;
case 2:q=28;break;
case 3:q=31;break;
case 5:q=31;break;
case 7:q=31;break;
case 8:q=31;break;
case 10:q=31;break;
case 12:q=31;break;
case 4:q=30;break;
case 6:q=30;break;
case 9:q=30;break;
case 11:q=30;break;}
sum+=q;
}
if(s==1&&m>2)
sum++;
switch(m)
{case 1:q=31;break;
case 2:q=28;break;
case 3:q=31;break;
case 5:q=31;break;
case 7:q=31;break;
case 8:q=31;break;
case 10:q=31;break;
case 12:q=31;break;
case 4:q=30;break;
case 6:q=30;break;
case 9:q=30;break;
case 11:q=30;break;}
s=runnian(y);
if(s==1&&m==2)
q++;
int u,w;
u=sum%7;
w=3*u;
cout<<" 日 一 二 三 四 五 六"<<endl;
for(i=1;i<=w;i++)
cout<<' ';
for(i=1;i<=q;i++)
{if(u==6)
{cout<<fixed<<setw(2)<<i<<" "<<endl;;
u=-1;}
else cout<<fixed<<setw(2)<<i<<' '; u++;}
cout<<endl;} void shuxiang(int y)//判断属相
{int p;
p=y%12;
switch(p)
{case 1:cout<<"鸡年";break;
case 2:cout<<"狗年";break;
case 3:cout<<"猪年";break;
case 4:cout<<"鼠年";break;
case 5:cout<<"牛年";break;
case 6:cout<<"虎年";break;
case 7:cout<<"兔年";break;
case 8:cout<<"龙年";break;
case 9:cout<<"蛇年";break;
case 10:cout<<"马年";break;
case 11:cout<<"羊年";break;
case 12:cout<<"猴年";break;}
}
void shuchushuxiang() //输出属相
{
cout<<"请输入年份"<<endl;
int y;
cin>>y;
shuxiang(y);
cout<<endl;
}
void dijitian()
{int y,m,d,sum=0,i,l,s,q;
cout<<"请输入年月日"<<endl;
cin>>y>>m>>d;
l=shurupanduan(y,m,d);
while(l==0)
{cin>>y>>m;
l=shurupanduan(y,m,d);
}
for(i=1;i<m;i++)
{s=runnian(y);
switch(i)
{case 1:q=31;break;
case 2:q=28;break;
case 3:q=31;break;
case 5:q=31;break;
case 7:q=31;break;
case 8:q=31;break;
case 10:q=31;break;
case 12:q=31;break;
case 4:q=30;break;
case 6:q=30;break;
case 9:q=30;break;
case 11:q=30;break;}
sum+=q;
}
if(s==1&&m>2)
sum++;
sum=sum+d;
cout<<y<<"年"<<m<<"月"<<d<<"日是这一年中第"<<sum<<"天"<<endl; }
void nianli()
{cout<<"请输入文本名称:";
char s[20];
cin>>s;
ofstream outfile(s,ios::out);
cout<<"请输入年份"<<endl;
int y,m,l;
cin>>y;
for(m=1;m<=12;m++)
{
int z=1;
l=shurupanduan(y,m,z);
while(l==0)
{cin>>y>>m;
l=shurupanduan(y,m,z);
}
int q,s,i,sum=0;
for(i=1905;i<y;i++)
{sum+=365;
s=runnian(i);
if(s==1)
sum++;}
for(i=1;i<m;i++)
{s=runnian(y);
switch(i)
{case 1:q=31;break;
case 2:q=28;break;
case 3:q=31;break;
case 5:q=31;break;
case 7:q=31;break;
case 8:q=31;break;
case 10:q=31;break;
case 12:q=31;break;
case 4:q=30;break;
case 6:q=30;break;
case 9:q=30;break;
case 11:q=30;break;}
sum+=q;
}
if(s==1&&m>2)
sum++;
switch(m)
{case 1:q=31;break;
case 2:q=28;break;
case 3:q=31;break;
case 5:q=31;break;
case 7:q=31;break;
case 8:q=31;break;
case 10:q=31;break;
case 12:q=31;break;
case 4:q=30;break;
case 6:q=30;break;
case 9:q=30;break;
case 11:q=30;break;}
s=runnian(y);
if(s==1&&m==2)
q++;
int u,w;
u=sum%7;
w=3*u;
outfile<<" "<<y<<"年"<<m<<"月"<<endl;
outfile<<" 日 一 二 三 四 五 六"<<endl;
for(i=1;i<=w;i++)
outfile<<' ';
for(i=1;i<=q;i++)
{if(u==6)
{outfile<<fixed<<setw(2)<<i<<" "<<endl;;
u=-1;}
else outfile<<fixed<<setw(2)<<i<<' '; u++;}
outfile<<endl;
}
for(m=1;m<=12;m++)
{
int z=1;
l=shurupanduan(y,m,z);
while(l==0)
{cin>>y>>m;
l=shurupanduan(y,m,z);
}
int q,s,i,sum=0;
for(i=1905;i<y;i++)
{sum+=365;
s=runnian(i);
if(s==1)
sum++;}
for(i=1;i<m;i++)
{s=runnian(y);
switch(i)
{case 1:q=31;break;
case 2:q=28;break;
case 3:q=31;break;
case 5:q=31;break;
case 7:q=31;break;
case 8:q=31;break;
case 10:q=31;break;
case 12:q=31;break;
case 4:q=30;break;
case 6:q=30;break;
case 9:q=30;break;
case 11:q=30;break;}
sum+=q;
}
if(s==1&&m>2)
sum++;
switch(m)
{case 1:q=31;break;
case 2:q=28;break;
case 3:q=31;break;
case 5:q=31;break;
case 7:q=31;break;
case 8:q=31;break;
case 10:q=31;break;
case 12:q=31;break;
case 4:q=30;break;
case 6:q=30;break;
case 9:q=30;break;
case 11:q=30;break;}
s=runnian(y);
if(s==1&&m==2)
q++;
int u,w;
u=sum%7;
w=3*u;
cout<<" "<<y<<"年"<<m<<"月"<<endl;
cout<<" 日 一 二 三 四 五 六"<<endl;
for(i=1;i<=w;i++)
cout<<' ';
for(i=1;i<=q;i++)
{if(u==6)
{cout<<fixed<<setw(2)<<i<<" "<<endl;;
u=-1;}
else cout<<fixed<<setw(2)<<i<<' '; u++;}
cout<<endl;
}
}
c++日历v1.0版本的更多相关文章
- 码农很忙代理IP系统V1.0版本上线
码农很忙代理IP系统V1.0版本上线 经过为期一个月的重写和测试,新版本的码农很忙代理IP系统已于今日正式上线.新版本拥有更精准的匿名类型识别和更高效的验证调度算法. 新版本仍旧采用ASP.NET B ...
- 代码之间-论文修改助手v1.0版本发布
论文查重,是每个毕业生都要面临的一个令人头疼的问题,如果写论文不认真,很可能导致查重红一大片. 之前有帮助一些朋友修改论文降低重复率,做了一些工作后发现,国内的查重机构,如知网.维普等,大多数是基于关 ...
- 社会单位消防安全户籍化管理系统——半自动提交V1.0版本
社会单位消防安全户籍化管理系统——半自动提交V1.0版本 首先先上代码,开发这个小程序其实是用来帮助同事完成一项每天都做的繁琐事件,以往需要花费十分钟做这件事情,现在就是傻瓜式,点几下鼠标就好了.本来 ...
- Node.js开源应用OSN发布初始V1.0版本-见面版本
Nodejs开源应用OSN初始版本V1.0发布,请参考本操作说明文档,有任何问题请留言 Nodejs开源应用OSN发布V1.0版本: OSChina收录地址: OSC收录地址:http://www.o ...
- 学霸系统UI项目功能说明书 v1.0版本
发布人员:软件工程实践小队. 发布内容:学霸系统UI项目说明书. 版本:学霸v1.0版本. 学霸系统UI项目说明书 v1.0版本分为以下部分: Part 1:用户须知: Part 2:功能实现: Pa ...
- YaoLingJump开发者日志(五)V1.0版本完成
跳跃吧瑶玲下载连接 官网下载 百度网盘下载 提取码:apx9 介绍 总算完成V1.0版本了,下面来简单地介绍一下吧! 打开游戏,最开始会进入到"主界面". 右上角的按钮 ...
- 江中微型统计分析软件V1.0版本完成
中文名称:江中微型统计分析软件 英文名称: 项目名称:JXUTCMMSAS 项目地址:保密 在研究生最后历时1年的时间里,完成了江中微型统计分析软件V1.0,后续还在不断更新中,将自己的改进算法.机器 ...
- 三、主流区块链技术特点及Hyperledger Fabric V1.0版本特点
一.Hyperledger fabric V1.0 架构 1.逻辑架构: 2.区块链网络 3.运行时架构 二.架构总结 1.架构要点 分拆Peer的功能,将Blockchain的数据维护和共识服务进行 ...
- 003-主流区块链技术特点及Hyperledger Fabric V1.0版本特点
一.Hyperledger fabric V1.0 架构 1.逻辑架构: 2.区块链网络 3.运行时架构 二.架构总结 1.架构要点 分拆Peer的功能,将Blockchain的数据维护和共识服务进行 ...
随机推荐
- hdu1394(线段树求逆序对)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 线段树功能:update:单点增减 query:区间求和 分析:如果是0到n-1的排列,那么如果 ...
- java性能缓慢
虚拟帝国上面有很多营销软件是JAVA开发的!创业公司通常选择开源技术减少项目管理费用. 除了使用Java编程语言,创业公司也可以利用Java开发工具包的好处(JDK),Java运行时环境(JRE)和J ...
- jdbc初步(转)
1. Jdbc的六个编程步骤 1. 注册一个驱动 注册驱动程序有三种方式: 方式一:Class.forName(“oracle.jdbc.driver.OracleDriver”); JAVA 规范中 ...
- zigbee学习:示例程序SampleApp中按键工作流程
zigbee学习:示例程序SampleApp中按键工作流程 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:IAR8. ...
- C语言中main函数的參数具体解释
main函数的定义形式 main函数能够不带參数,也能够带參数,这个參数能够觉得是 main函数的形式參数.C语言规定main函数的參数仅仅能有两个,习惯上这两个參数写为argc和ar ...
- 教你如何使用U盘装系统
首先,你必须有一个4G以上U菜,然后,U光盘制作软件(这里我们使用url=KRVS0FUdaNAMKPUXUxjEijxBMalUjaJHph-tL-x4gXGSwVNUW3fj6RfuZtrMg1Y ...
- HTML5 在canvas绘制一个矩形
笔者:本笃庆军 原文地址:http://blog.csdn.net/qingdujun/article/details/32930501 一.绘制矩形 canvas使用原点(0,0)在左上角的坐标系统 ...
- JavaScript模式读书笔记 文章3章 文字和构造
1.对象字面量 -1.Javascript中所创建的自己定义对象在任务时候都是可变的.能够从一个空对象開始,依据须要添加函数.对象字面量模式能够使我们在创建对象的时候向其加入函数. ...
- COJ 1102 - You Can Say 11 题解
本题就是给出一个无穷大数,算其能否被11除尽 Description Your job is, given a positive number N, determine if it is a mult ...
- QoS令牌桶工作原理
QoS的一个重要作用就是对port流量进行监管,也就是限制port流量.但QoS是怎样做到这点的呢?那就是QoS的令牌桶机制了.以下是在笔者刚刚出版的<Cisco/H3C交换机高级配置与管理技术 ...