zoukankan      html  css  js  c++  java
  • c++日历问题

    【问题描述】

    在我们现在使用的日历中, 闰年被定义为能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它们不是闰年。例如:1700, 1800, 1900 和 2100 不是闰年,而 1600, 2000 和 2400是闰年。 给定从公元2000年1月1日开始逝去的天数,你的任务是给出这一天是哪年哪月哪日星期几。

     

    #include<iostream>
    #include<string>
    using namespace std;

    int JudgeQueryNum(int flag){
    int num=0;
    for(int i=2000;i<2000+flag;i++){
    if(i%4==0){
    if(i%100==0){
    if(i%400!=0){
    break;
    }else{
    num++;
    }

    }else{
    num++;
    }


    }


    }

    return num;
    }
    int JudgeQueryOneNum(int i){
    int num=0;

    if(i%4==0){
    if(i%100==0){
    if(i%400!=0){
    return 0;
    }else{
    num++;
    }

    }else{
    num++;
    }


    }
    if(num>0){
    return 1;
    }


    return 0;
    }

    int JudgeWeekday(int in){
    int week;
    int temp=in%7;
    week=(temp+6)%7;

    return week;
    }


    int main(){
    int in;
    int num;
    int a[12]={31,60,91,121,152,182,213,244,274,305,335,366};
    int b[12]={31,59,90,120,151,181,212,243,273,304,334,365};
    string c[7]={"sun","mon","tue","wed","thu","fri","sat"};
    while(1){
    int flag;
    int end;
    int cur;
    int month,day,year,temp=1;
    cin>>in;

    if(in==-1){
    break;
    }else{
    flag=in/365;
    end=in%365;
    num=JudgeQueryNum(flag);
    cur=JudgeQueryOneNum(2000+flag);
    // cout<<num<<endl;
    // cout<<cur<<endl;

    int remain=in-365*(flag-num)-num*366;
    if(cur){

    for(int i=0;i<12;i++){
    if(remain>a[i]){
    temp++;

    }else{

    break;
    }

    }
    month=temp;
    day=remain-a[temp-2]+1;

    }else{
    for(int i=0;i<12;i++){
    if(remain>b[i]){
    temp++;

    }else{

    break;
    }

    }
    month=temp;
    day=remain-b[temp-2]+1;
    }
    year=2000+flag;
    int week=JudgeWeekday(in);

    cout<<year<<"-"<<month<<"-"<<day<<" "<<c[week]<<endl;



    // if(remain>31){
    // if(cur){
    // if(remain>60){
    // if(remain>)
    // }else{
    // month=2;
    // day=remain-31;
    // }
    //
    //
    // }
    // }else{
    // month=1;
    // day=remain;
    // }




    }



    }


    }

  • 相关阅读:
    cnblogs blogStats All In One
    ESLint & vue template indent validate All In One
    vue & elementui 表单验证 bug All In One
    vue 表单验证 rule.message bug All In One
    vue 表单验证 rule message bug All In One
    Node.js & TypeScript error All In One
    VS2010如何调试IIS上的网站
    用LINQ查询XML并绑定给GridView显示
    SQLServer2008评估期已过解决方法
    ASP.NET给用户控件(.ascx)增加属性
  • 原文地址:https://www.cnblogs.com/xufeng123/p/12672616.html
Copyright © 2011-2022 走看看