• c++ 根据生产日期,保质期求出过期时间


    第4关:计算日期

    挑战任务

    我们吃的食物都有保质期,现在食品监督管理局想要制作一个能准确计算食品过期日期的小程序,需要请你来进行设计。

    例如:A食品在2018年1月1日生产,保质期是20天,则它的过期日期在2018年1月21日。

    编程要求

    补全函数string getDate(string releaseDate,int day)其中releaseDate表示食品出厂日期day表示保质期,请根据传入的数据计算食品的过期日期,格式为yyyy-mm-dd4位年份2位月份2位日期。比如:2015-02-19

    请严格按照格式书写,不能出现其它文字或符号,并将最终结果做为函数的返回值返回。

    测试说明

    样例1:

    输入:
    2016-01-0120

    输出:

    2016-01-21


    #include<iostream>
    #include<string.h>
    #include<cstdio>
    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(i<releaseDate.length()){
    		d=d*10+releaseDate[i]-'0';         //日d
    		i++;
    	}
    	int mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    	d+=day;
    	if(m==2)                               //考虑润年的二月
    		mon[2]=28+(y%4==0&&y%100!=0||y%400==0);
    	while(d>mon[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<s.length();i++)
    		cout<<s[i];
    	cout<<endl;
    	return 0;
    }

    体会:学会如何去计算日期。

    朋友们,无论这个世界变得怎样,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    win10-wifi无线共享自动关闭解决
    可用的nlog配置
    cmake 常用指令,变量
    window时间服务
    命令行配置服务启动类型
    boost流gzip压缩
    mysql 查询某表的所有列,获取毫秒时间戳
    system进程占用80端口
    centos8重新分区(减小/home空间,增大root空间)
    emqx使用data_to_webservice方式配置规则引擎简单实践
  • 原文地址:https://www.cnblogs.com/FrankChen831X/p/10326090.html
Copyright © 2020-2023  润新知