2017-03-21 108 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

所以我很困惑你的意思,可以給我一個代碼管理單元?我必須堅持,只是修改我的代碼(如果其他語句)或做出新的? –