從某一日期開始過day天的日期

來源:互聯網
上載者:User

標籤:style   blog   io   ar   color   os   sp   for   on   

  一個SX問我的,我就寫了寫......從2010.1.1開始,給了一組測試資料3的話輸出2010.1.4星期1,所以說2010.1.1是星期五,總星期就是

(day+5)%7==0?7:(day+5)%7

      下面是代碼......

#include <iostream>#include <stdlib.h>using namespace std;int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};int myDay[1100]; bool isRunYear(int year){    if((year%4==0&&year%100!=0)||year%400==0)        return true;    return false;}int main(){    int i,j,k,t=0;    int day;    cin>>day;    int sumDay = 0;    //先算到3000年,每年離得天數     for(i=2010;i<3000;i++)    {        //sumDay = 0;不可清零         bool flag = isRunYear(i);        if(flag)            sumDay += 366;        else            sumDay += 355;        myDay[t++] = sumDay;    }    for(i=0; i<t;i++)    {        if(myDay[i]>day)            break;    }     int year = i+2010;    //算月份     int leftDay;    if(i==0)        leftDay = day;    else        leftDay = day-myDay[i-1];     bool flag = isRunYear(year);    int sum = 0;    if(flag)        month[1] = 29;    int monthDay=0;     int finalDay;    for(j=0;j<12;j++)    {        //感覺這一句比較妙         sum += month[j];        //if(leftDay<=sum)           // break;         if(leftDay<sum)        {            monthDay = j+1;            //最後加一是因為 1月1日開始不是1月0日             finalDay = leftDay - (sum-month[j])+1;            break;        }        else //31天的時候應該是2月1號             if(leftDay==sum)             {                monthDay=j+2;                finalDay = 1;                break;            }    }        int xingqi = (day+5)%7==0?7:(day+5)%7;    cout<<"第"<<day<<"天后是:"<<year<<"年"<<monthDay<<"月"<<finalDay<<"號"<<"星期"<<xingqi<<endl;     system("pause");    return 0;}     

 

從某一日期開始過day天的日期

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.