zoukankan      html  css  js  c++  java
  • 从某一日期开始过day天的日期

      一个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;
    }
    
         
  • 相关阅读:
    计算fibonacci数(多种方法)
    数组求和(两种方法)
    C语言二级指针(指向指针的指针)
    唯品会海量实时OLAP分析技术升级之路
    hive 调优(一)coding调优
    supsplk 服务器被植入木马 挖矿 cpu使用 700%
    OPTS参数设置
    Yarn 内存分配管理机制及相关参数配置
    hive on tez 任务失败
    hive 调优(三)tez优化
  • 原文地址:https://www.cnblogs.com/hxsyl/p/4158330.html
Copyright © 2011-2022 走看看