2017-03-21 70 views
-2

我希望获得一年中的剩余天数,并且我的代码几乎完整,但出现错误,它给我提供了错误的输出。一年中的剩余天数

对于实施例(MM-DD-YY)2013年3月18日和假设是288输出,但矿是275 ..

这里只是一些我的代码

void dateType::Num_RemainingYear() 
    { 
     int yy=365; 
     int sum; 

     if(month==0) 
     { 
      day=0; 
      cout<<"Number of days Remaining in the year: "<<day<<endl; 
     } 


     else if (month ==1) 
     { 
      day=31; 
      sum=yy-day; 

      cout<<"Number of days Remaining in the Year: "<<sum<<endl; 

     }...until 12 

Output Here

+0

链接代码,或什么解释这个问题至关重要,是一个坏主意,因为当链接腐烂的问题变得无用。 – user4581301

+1

直到您看到程序没有按照您的预期行事时,使用开发环境几乎肯定随带的调试程序(如果您的开发环境是少数几个没有调试程序的开发环境之一进行升级)逐步执行代码。然后找出它为什么没有达到你的预期。 – user4581301

+0

要做的研究:time(0),'localtime_r'和'struct tm'。 –

回答

1

你的代码看起来相当复杂。如果只添加自今年1.1以来已经过去的所有日子,并从365/366中减去这些日子?

没有LEP年,这里怎么会是这样的:

int daysPassed = 0; 
for (int i = 1; i < month; i++) { 
    if (i == 2) 
     daysPassed += 28; 
    else if (i < 8 && i % 2 == 1) 
     daysPassed += 31 
    else if (i < 7) 
     daysPassed += 30; 
    else if (i % 2 == 0) 
     daysPassed += 31; 
    else 
     daysPassed += 30; 
} 
daysPassed += day; 
+0

这是唯一的方法我可以想出 –

+0

只是去thro呃每个月过去了,一起加上日子。从365/366减去最终值,就完成了。快速和容易 – Phantom1911

+0

所以我很困惑你的意思,可以给我一个代码管理单元?我必须坚持,只是修改我的代码(如果其他语句)或做出新的? –