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;
    }

  • 相关阅读:
    随笔1
    随笔
    shared_ptr<> reset
    c++模板库(简介)
    rockmongo用法
    随笔
    TEXT宏,TCHAR类型
    sprintf
    基于SOA的银行系统架构
    大纲6 信息化规划与管理
  • 原文地址:https://www.cnblogs.com/liufang/p/3729358.html
Copyright © 2011-2022 走看看