欢迎光临MCUWAY! 本站网名:单片机之路  永久域名:www.mcuway.com

设为首页

加入收藏

电子基础 初学MCU 单片机类型 MCU程序 MCU应用 设计软件 测控电路 技术论坛
 您现在的位置: 单片机之路 >> 单片机程序 >> 单片机源码 >> 文章正文

可以计算星期几的C代码

计算星期几的C代码

static UCHAR   ClkDay;               /* Counters for local 
DATE                                      */
static UCHAR   ClkDOW;               /* Day of week (0 is 
Sunday)                                    */
static UCHAR   ClkMonth;
static UINT    ClkYear;

typedef struct clk_month 
{         
    UCHAR  MonthDays;                /* Number of days in each 
month                                 */
    char  *MonthName;                /* Name of the 
month                                            */
    UCHAR  MonthVal;                 /* Value used to compute day of the 
week                        */
} CLK_MONTH;


static CLK_MONTH code ClkMonthTbl[] = {    /* MONTHS 
TABLE                                                 */
    {0,  "",           0},             /* Invalid 
month                                                */
    {31, "January ",   6},             /* 
January                                                      */
    {28, "February ",  2},             /* February (note leap years are handled 
by code)               */
    {31, "March ",     2},             /* 
March                                                        */
    {30, "April ",     5},             /* 
April                                                        */
    {31, "May ",       0},             /* 
May                                                          */
    {30, "June ",      3},             /* 
June                                                         */
    {31, "July ",      5},             /* 
July                                                         */
    {31, "August ",    1},             /* 
August                                                       */
    {30, "September ", 4},             /* 
September                                                    */
    {31, "October ",   6},             /* 
October                                                      */
    {30, "November ",  2},             /* 
November                                                     */
    {31, "December ",  4}              /* 
December                                                     */
};
/*
********************************************************************************
*                                         COMPUTE DAY-OF-WEEK
*
* Description : This function computes the day of the week (0 == Sunday) based 
on the current month,
*               day and year.
* Arguments   : None.
* Returns     : None.
* Notes       : - This function updates ClkDOW.
*               - This function is called by ClkUpdateDate().
********************************************************************************
*/
#if CLK_DATE_EN
static  void  ClkUpdateDOW (void)
{
    UINT dow;
    
    dow = ClkDay + ClkMonthTbl[ClkMonth].MonthVal;
    if (ClkMonth < 3)
    {
        if (ClkIsLeapYear(ClkYear)) 
        {
            dow--;
        }
    }
    dow    += ClkYear + (ClkYear / 4);
    dow    += (ClkYear / 400) - (ClkYear / 100);
    dow    %= 7;
    ClkDOW  = dow;
}
#endif

 

普通文章28课:单片机音乐汇编程序设计
普通文章27课:单片机的一些基本概念
普通文章26课:单片机矩阵式键盘接口技术
普通文章51单片机教程(从原理开始基于汇编)
普通文章1课:单片机概述
普通文章2课:8051单片机引脚介绍
普通文章3课:单片机存储器结构结构分析
普通文章4课:第一个单片机小程序
普通文章5课:单片机延时程序分析
普通文章6课:单片机并行口结构
普通文章7课:单片机的特殊功能寄存器
普通文章8课:单片机寻址方式与指令系统
普通文章9课:单片机数据传递类指令
普通文章10课:单片机数据传送类指令
普通文章11课:单片机算术运算指令
普通文章12课:单片机逻辑运算类指令
普通文章13课:单片机逻辑与或异或指令祥解
普通文章14课:单片机条件转移指令
普通文章15课:单片机位操作指令
普通文章16课:单片机定时器与计数器
普通文章17课:单片机定时器/计数器的方式控制
普通文章18课:单片机的中断系统
普通文章19课:单片机定时器、中断试验
普通文章20课:单片机定时/计数器实验
普通文章21课:单片机串行口介绍

  • 上一篇文章:
  • 下一篇文章:
  • 更多精彩内容>>>

    普通文章电流单位
    普通文章功率单位
    普通文章什么是达林顿管?
    普通文章晶闸管的作用与原理

    学习单片机的必经之路——单片机之路,永久域名:www.mcuway.com