1. 程式人生 > >C/C++練習題 定義一個日期變數,進行年、月、日的輸入,計算該日期是本年中的第幾天。

C/C++練習題 定義一個日期變數,進行年、月、日的輸入,計算該日期是本年中的第幾天。

問題及程式碼:
/*
 *Copyright(c)2016,煙臺大學計算機與控制工程學院
 *All right reserved.
 *檔名稱:main.cpp
 *作    者:郝昱猛
 *完成日期:2016年4月28日
 *版 本 號:v1.0
 *
 *問題描述:.定義一個日期變數,進行年、月、日的輸入,計算該日期是本年中的第幾天。
 *程式輸出:
 */
#include <iostream>
using namespace std;
struct y_m_d
{
    int year;
    int month;
    int day;
};
int is_runnian(int iyear)
{
    if((iyear%4==0&&iyear%100!=0)||(iyear%400==0))
        return 1;
    else
        return 0;
}
int sday(int num,int iyear)
{
    switch(num)
    {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        return 31;
    case 4:
    case 6:
    case 9:
    case 11:
        return 30;
    case 2:
        if(is_runnian(iyear))
            return 29;
        else
            return 28;
    }
    return 0;
}

int days(y_m_d date)
{
    int i,s=0;
    for(i=1;i<=date.month;i++)
        s=s+sday(i,date.year);
        return s;
}
int main()
{
  y_m_d date;
  int days(y_m_d);
  int day_sum;
  cin>>date.year>>date.month>>date.day;
  day_sum=days(date);
  cout<<day_sum<<endl;
  return 0;
}


執行結果: