求VC++6.0下的万年历程序

来源:百度知道 编辑:UC知道 时间:2024/06/07 03:28:57
要求:输入年份,显示当年的万年历;要带农历的!请帮帮忙啊!感激不尽
1楼的能详细的说一下么?谢谢

#include <stdio.h>

/*
呼叫时须设定 Souce 的值, 若为 0 则为西历转农历, 否则为农历转西历.
然后视输入为西历或农历来设定西历或农历的年月日.
转换后的年月日会填入结构中(农历或西历 ), 以及该日为星期几, 天干地支.

若函式的返回值为
0 表示没有错误, 1 为输入之年份错误, 2 为输入之月份错误, 3 为输入之日期错误.

输入之西历年须在 1937 - 2031 间
输入之农历年须在 1936 - 2030 间
若须扩充,则增加 LunarCal[],修改FIRSTYEAR

*/

struct ConvDate
{
int Source; // ==0 则输入日期为西历, !=0 则输入为农历
int SolarYear; //输出或输入之西历年份 YYYY
int SolarMonth; //西历月 MM
int SolarDate; //西历日 DD
int LunarYear; //输出或输入之农历年份 YYYY
int LunarMonth; //农历月 负数表示闰月
int LunarDate; //农历日
int Weekday; //该日为星期几 (0星期日 1星期一 2星期二 3星期三 4星期四 5星期五 6星期六)
int Kan; //该日天干(0甲 1乙 2丙 3丁 4戊 5己 6庚 7辛 8壬 9癸)
int Chih; //该日地支(0子 1丑 2寅 3卯 4辰 5巳 6午 7未 8申 9酉 10戌 11亥)
};

struct tagLunarCal
{
char BaseDays; //西历 1 月 1 日到农历正月初一的累积日数
char Intercalation; //闰月月份. 0==此年没有闰月
char BaseWeekday; //此年西历 1 月 1 日为星期几再减 1