姓名测试 | 心理测试 | 公司名测算 | 车牌号码吉凶 | 周公解梦 | 星座查询 | 手机号码吉凶 | 免费起名 | 姓名配对 | 个性签名 |
更 多▼
网站导航
当前位置:1518首页 - 万年历

万年历算法

万年历的算法
一、 阳历算法

具体算法见函数Void get_solar_day_date(void),这样阳历日历的星期排法就确定了。
表1:

月份 1 2 3 4 5 6 7 8 9 10 11 12
闰年 31 29 31 30 31 30 31 31 30 31 30 31
非闰年 31 28 31 30 31 30 31 31 30 31 30 31
变量定义:
Public:
Unsigned int temp_total_day;
Unsigned char gc_solar_calendar_year;
Unsigned char gc_solar_calendar_month;
Unsigned char gc_solar_calendar_date;
Unsigned char gc_lunar_calendar_year;
Unsigned char gc_lunar_calendar_month;
Unsigned char gc_lunar_calendar_date;
Unsigned char start_day_of_week;
说明:函数get_solar_day_date(void)的输入变量:gc_solar_calendar_year和gc_solar_calendar_month
输出变量:start_day_of_week和temp_total_day
Void get_solar_day_date(void)
{
unsigned char temp01;


start_day_of_week = 2; temp_total_day = 0;calculate_temp = 1;
if(gc_solar_calendar_year > 99)
{start_day_of_week = 6;calculate_temp = 100;}
for(temp01 = calculate_temp; temp01 { if(temp014 == 0){start_day_of_week =2;temp_total_day = 366; }
else {start_day_of_week =1;temp_total_day = 365;}}
for(temp01 = 1;temp01 { switch(temp01)
{case 1,3,5,7,8,10,12: start_day_of_week =3;temp_total_day =31;break;
case 2: if(((gc_solar_calendar_year4) == 0)&&(gc_solar_calendar_year != 200))
{start_day_of_week =1; temp_total_day =29;}
else {start_day_of_week =0;temp_total_day =28;} break;
case 4,6,9,11: start_day_of_week =2; temp_total_day =30; break;}}
start_day_of_week =7;

}
关于1518  |  联系我们  |  占卜大师  |  相关资料
Copryright © 2009 1518.com. All rights reserved.