zoukankan      html  css  js  c++  java
  • 计算a月的第b个星期c

    计算从y1到y2年a月的第b个星期c的日期

    #include<iostream>
    using namespace std;
    bool isLeap(int y)
    {
        if(y%400==0 || y%4==0&&y%100!=0)
            return true;
        return false;
    }
    int main()
    {
        int a,b,c;
        int y1,y2;
        int pre_ydays = 0; //
        int pre_mdays = 0;
        int week = 0;
        int b1 = 0;//用于计数,第b1个星期c
        int day = 1;//用于记录当前是是第a月的第几天
        int months[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};//每个月的天数
        cin>>a>>b>>c>>y1>>y2;
        if(c == 7)  //因为7%7 =0
            c = 0;
        for(int i=1850;i<y1;i++) //计算从1850年到y1年之前共有多少天
        {
            if(isLeap(i))
                pre_ydays += 366;
            else
                pre_ydays += 365;
        }
        week = (pre_ydays+2) % 7;//计算y1年1月1号是星期几,因为1850年1月1号是星期二,所以要加2
        for(int y = y1;y<=y2;y++)//从y1年到y2年遍历
        {
            //如果是闰年2月份是29天
            if(isLeap(y))
                months[2] = 29;
            for(int m=1;m<a;m++)
            {
                pre_mdays += months[m];//记录从y年1月1号到a月1号之前有多少天
            }
            week = (pre_mdays + week)%7;  //计算呢a月1号是星期几
            b1 = 0;//用于记录第b1个星期c,初始化为0
            day = 1;//记录到第几天了
            for(int d = 1;d<=months[a]; d++)
            {
                
                if(week == c)//是星期c
                {
                    b1 ++;
                }
                if(week==c && b1==b)//是当前日期
                    break;
                day++;
                week = (week+1)%7;
            }
            printf("%4d/%02d/%02d
    ",y,a,day);
            //为计算下一年做准备
            pre_ydays = pre_ydays+365;
            if(isLeap(y))
            {
                pre_ydays += 1;
                months[2] = 28;
            }
            week = (pre_ydays +2)%7;
            pre_mdays = 0;
        }
        return 0;
    }
  • 相关阅读:
    cesium学习——cesium中的坐标
    webService框架CXF的简单使用
    使用cesium中的scene.open中遇到的几个问题
    通过Spring读取properties配置文件
    常用的Ant风格书写
    oracle小知识点
    虚拟机centos7系统下安装hadoop ha和yarn ha(详细)
    java 注解
    Guava Immutable 不可变集合
    Guava BiMap
  • 原文地址:https://www.cnblogs.com/ttzz/p/10553929.html
Copyright © 2011-2022 走看看