Advertisement

北京理工大学计算机考研机试KY258 日期累加

阅读量:

题目

复制代码
    描述
    设计一个程序能计算一个日期加上若干天后是什么日期。
    输入描述:
    输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。
    输出描述:
    输出m行,每行按yyyy-mm-dd的个数输出。
    示例1
    输入:
    1
    2008 2 3 100
    复制
    输出:
    2008-05-13
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解读

思路

复制代码
    #include<iostream>
    using namespace std;
    int daymonth[2][13]=
    {0,31,28,31,30,31,30,31,31,30,31,30,31,
    0,31,29,31,30,31,30,31,31,30,31,30,31,}; 
    
    bool IsRun(int y){
    	if(y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
    		return true;
    	else
    		return false;
    }
    
    int main(){
    int n;
    cin >> n;
    int y,m,d,num;
    for(int i = 1;i <= n;i++){
    	cin >> y >> m >> d >> num;
    	int sum = 0;
        if(IsRun(y)){
            for(int i = 1;i < m;i++){
                sum = sum + daymonth[1][i];
            }
        }else{
            for(int i = 1;i < m;i++)
                sum = sum + daymonth[0][i];
        }
        sum = sum + d;
        num = num + sum;
        while(true){
        	if(IsRun(y))
        	{
        		if(num > 366)
        		{
        			y++;
        			num = num - 366;
    				}
    				else
    					break;
    			}else
    			{
    				if(num > 365)
    				{
    					y++;
    					num = num - 365;
    				 } 
    				else
    					break;
    			}
    		}
    		if(IsRun(y)){
    		for(m = 1;num > daymonth[1][m];m++)
    			num=num-daymonth[1][m];
    		}else{
    			for(m = 1;num > daymonth[0][m];m++)
    				num=num-daymonth[0][m];
    		}
    		printf("%04d-%02d-%02d\n",y,m,num);
    	}
    }
    
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解读

全部评论 (0)

还没有任何评论哟~