zoukankan      html  css  js  c++  java
  • 计算公历

    void GregorianDay(struct rtc_time * tm)
    {
    int leapsToDate;
    int lastYear;
    int day;
    int MonthOffset[] = { 0,31,59,90,120,151,181,212,243,273,304,334 };

    lastYear=tm->tm_year-1;

    /*计算从公元元年到计数的前一年之中一共经历了多少个闰年*/
    leapsToDate = lastYear/4 - lastYear/100 + lastYear/400;

    /*如若计数的这一年为闰年,且计数的月份在2月之后,则日数加1,否则不加1*/
    if((tm->tm_year%4==0) &&
    ((tm->tm_year%100!=0) || (tm->tm_year%400==0)) &&
    (tm->tm_mon>2)) {
    /*
    * We are past Feb. 29 in a leap year
    */
    day=1;
    } else {
    day=0;
    }

    day += lastYear*365 + leapsToDate + MonthOffset[tm->tm_mon-1] + tm->tm_mday; /*计算从公元元年元旦到计数日期一共有多少天*/

    tm->tm_wday=day%7;
    }

  • 相关阅读:
    64最长和谐子序列(594)
    63找到字符串中所有字母异位词(438)
    62有效的数独(36)
    10.10
    9.27作业
    9.27
    9.26
    9.25
    9.18学习内容
    9.17作业
  • 原文地址:https://www.cnblogs.com/liufang/p/3729358.html
Copyright © 2011-2022 走看看