c++生産日により賞味期限を求める
1667 ワード
第4関門:計算日
任務に挑戦する.
私たちが食べる食べ物には賞味期限があります.今、食品監督管理局は食品の期限切れを正確に計算できる小さなプログラムを作りたいと思っています.設計してください.
例えば、A食品は2018年1月1日に生産され、賞味期限が
プログラミング要件
補完関数
テストの説明
サンプル1:
入力:
体得:日付の計算方法を学ぶ.
任務に挑戦する.
私たちが食べる食べ物には賞味期限があります.今、食品監督管理局は食品の期限切れを正確に計算できる小さなプログラムを作りたいと思っています.設計してください.
例えば、A食品は2018年1月1日に生産され、賞味期限が
20
日であれば、その期限は2018年1月21日である.プログラミング要件
補完関数
string getDate(string releaseDate,int day)
そのうちreleaseDate
は食品出荷日day
は賞味期限を表し、入力されたデータから食品の期限切れを計算してください.フォーマットはyyyy-mm-dd
、すなわち4
位年2
位月2
位日です.例えば:2015-02-19
他の文字や記号は表示されず、最終結果を関数の戻り値として返してください.テストの説明
サンプル1:
入力:
2016-01-01
20
出力:2016-01-21
#include
#include
#include
using namespace std;
string getDate(string releaseDate,int day){
int i=0;
int y=0,m=0,d=0;
while(releaseDate[i]!='-'){
y=y*10+releaseDate[i]-'0'; // y
i++;
}
i++;
while(releaseDate[i]!='-'){
m=m*10+releaseDate[i]-'0'; // m
i++;
}
i++;
while(imon[m]){
d-=mon[m];
m=(m==12)?1:m+1;
if(m==1)
y++;
else if(m==2)
mon[2]=28+(y%4==0&&y%100!=0||y%400==0);
}
char yy[11],mm[3],dd[3];
sprintf(yy,"%d",y); //
sprintf(mm,"%d",m);
sprintf(dd,"%d",d);
strcat(yy,"-"); //
strcat(yy,mm);
strcat(yy,"-");
strcat(yy,dd);
return yy;
}
int main(){
string s=getDate("2016-02-22",30);
for(int i=0;i
体得:日付の計算方法を学ぶ.