當前位置:編程學習大全網 - 編程語言 - 30分求C++編程:輸入生日,計算活了多少天?

30分求C++編程:輸入生日,計算活了多少天?

修改了explorewin存在的問題,可以計算任意兩天之間所隔的天數,首先輸入生日,再輸入今天的日期,電腦會自動計算。

代碼如下:

#include <iostream.h>

int dayfun(int nowYear,int nowMonth,int nowDay)//此函數計算今天是今年的第幾天

{

bool isrunnian=((nowYear%4==0)&&(nowYear%100!=0)||(nowYear%400==0)); //今年是閏年嗎

int whichday=0;

for(int i=1;i<nowMonth;i++)

{

switch(i) {

case 1: case 3: case 5: case 7: case 8: case 10: case 12:

{ whichday+=31; break; }

case 4: case 6: case 9: case 11:

{ whichday+=30; break; }

case 2:

if (isrunnian==true) { whichday+=29; break; }

else

{ whichday+=28; break; }

}

return whichday+nowDay;

}

}

int main(void)

{

int nowYear,nowMonth,nowDay;

int biryear,birmonth,birday;

bool isRunNian;

int ff=0,bb=0,pp; //pp為出生年的天數

cout<<"input a birthday:"<<endl;//以下輸入生日的年月日

cout<<"year=";

cin>>biryear;

cout<<"month=";

cin>>birmonth;

cout<<"day=";

cin>>birday;

cout<<"input a date:"<<endl;//以下輸入今天的年月日

cout<<"year=";

cin>>nowYear;

cout<<"month=";

cin>>nowMonth;

cout<<"day=";

cin>>nowDay;

ff=dayfun(nowYear,nowMonth,nowDay);//求今天是今年的第幾天的函數

bb=dayfun(biryear,birmonth,birday);//求出生日是出生年的第幾天的函數

int age=nowYear-biryear;//得到周歲數

cout<<"age="<<age<<" years"<<endl;

int counter=0;//counter用來作記數器,計閏年數

for(int i=biryear+1;i<nowYear;i++)//此循環算出閏年總數(出生年,今年未算在內)

{

isRunNian=((i%4==0)&&(i%100!=0)||(i%400==0)); //判斷是否為閏年

if(isRunNian==true)

{

counter++;

isRunNian=false;

}

}

cout<<"run nian= "<<counter<<" years"<<endl;

int pingYear=age-counter;//平年數

cout<<"ping nian="<<pingYear<<" years"<<endl;

//cout<<"total months="<<age*12+nowMonth<<endl;

int totalday=0;

if (age>=0)

{

totalday=7*31*age+4*30*age+(counter*29+(age-counter)*28)+ff-bb;//總天數等於出生年剩余天數+周歲數(未包括今年)+ 今天是今年的第幾天

}

else

{

totalday=ff;

}

cout<<"***活了"<<totalday<<"天"<<endl;

return 0;

}

  • 上一篇:有哪些口碑很好的樂高產品值得推薦?
  • 下一篇:深圳物聯網公司有哪些啊?
  • copyright 2024編程學習大全網