C++编程,求你自己活了多少天

来源:互联网 发布:标致雪铁龙 知乎 编辑:程序博客网 时间:2024/04/30 10:36

说明:

用户需要输入自己的出生时间和当前的时间,程序会自动计算您活了多少天了=.=


/*C++编程,求你自己活了多少天*/#include<iostream> using namespace std;int main(){int y1,y2,m1,m2,d1,d2;int panduan(int y,int m,int d);//计算天数的函数的声明double total=0;cout<<"please input your birthday:";//输入你的出生日期cin>>y1>>m1>>d1;cout<<y1<<"/"<<m1<<"/"<<d1<<endl; cout<<"please input now day date:";//输入现在的日期cin>>y2>>m2>>d2;cout<<y2<<"/"<<m2<<"/"<<d2<<endl;         //计算经过的年的天数for(int i=y1;i<y2;i++){if((i%4==0&&i%100!=0)||(i%400==0))total+=366;else total+=365;   } int duo1,duo2;       duo1=panduan(y1,m1,d1);       duo2=panduan(y2,m2,d2);       total+=duo2-duo1+1;//计算经过的净天数       cout<<"you have lived for "<<total<<" days"<<endl;       return 1; }int panduan(int y ,int m,int d){int db[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};int duo=0,i=0;        if((y%4==0&&y%100!=0)||(y%400==0))   //闰年的情况           {                   for(i=0;i<m-1;i++)                   {                      duo+=db[1][i];                          }              }else{//平年的情况           for(i=0;i<m-1;i++)                {                  duo+=db[0][i];                 }               }          cout<<(duo+=d)<<endl;  return duo;    }

程序效果图:


对程序的一些思考

思考:其实,现在的时间可以不用输入,应该可以通过C++的函数来直接获取现在的日期,这样更加人性化。

找到了优化方法

哈哈,小编我又回来了~

C++获取当前日期的方法

查了下C++获取系统当前日期的方法,有篇文章不错,推荐下:http://blog.csdn.net/zjnig711/article/details/2419081/

我采用的最简单的,使用了windows API的方法,有就是那篇文章中的方法二用来优化该程序。

获取日期的方法示例代码:

#include <windows.h>//获取Windows API#include<iostream>using namespace std;int main( void ){SYSTEMTIME sys;GetLocalTime( &sys );cout<<sys.wYear<<"年"<<sys.wMonth<<"月"<<sys.wDay<<"日"; return 0;}

优化后的代码:

/*C++编程,求你自己活了多少天,优化版*/#include<iostream> #include<windows.h> using namespace std;int main(){int y1,y2,m1,m2,d1,d2;int panduan(int y,int m,int d);//计算天数的函数的声明double total=0;cout<<"please input your birthday:";//输入你的出生日期cin>>y1>>m1>>d1;cout<<"your birthday: "<<y1<<"/"<<m1<<"/"<<d1<<endl;     SYSTEMTIME sys;    GetLocalTime( &sys );    y2=sys.wYear;//获得当前的年分     m2=sys.wMonth;//获得当前月份     d2=sys.wDay;//获得当前的天 cout<<"now date: "<<y2<<"/"<<m2<<"/"<<d2<<endl;         //计算经过的年的天数for(int i=y1;i<y2;i++){if((i%4==0&&i%100!=0)||(i%400==0))total+=366;else total+=365;   } int duo1,duo2;       duo1=panduan(y1,m1,d1);       duo2=panduan(y2,m2,d2);       total+=duo2-duo1+1;//计算经过的净天数       cout<<"you have lived for "<<total<<" days"<<endl;       return 1; }int panduan(int y ,int m,int d){int db[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};int duo=0,i=0;        if((y%4==0&&y%100!=0)||(y%400==0))   //闰年的情况           {                   for(i=0;i<m-1;i++)                   {                      duo+=db[1][i];                          }              }else{//平年的情况           for(i=0;i<m-1;i++)                {                  duo+=db[0][i];                 }               }          duo+=d;  return duo;    }

优化后的程序只需要输入你的出生日期即可,不再不需要输入现在的日期,更加人性化^_^

程序运行界面:


原创粉丝点击