




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
indoc.in
一個C++的萬年歷類
這篇文章是一位很熱心的作者的力作,程序沒有問題,大家如果有需要
可以閱讀一下,能幫助大家是我們的心愿。
#ifndef_CALENDAR_H
#define_CALENDAR_H
Sinclude<windows.h>
structmyDATE{
intyear;
intmonth;
intday;
boolisRunYue;
);
classcalendar(
public:
calendar(){};
心docin銀豆網(wǎng)
文章內(nèi)容版權(quán)歸原作者所有VICHU.NET
indoc.in
^calendar(){};
LONG!DaysFroml900(myDATEdate);〃date與1900年相差的天數(shù)
UINTlYearDays(UINTy);〃農(nóng)歷y年的總天數(shù)
UINTleapDays(UINTy);〃傳回農(nóng)歷y年閏月的天數(shù)
UINTleapMonth(UINTy);//傳回農(nóng)歷y年閏哪個月1-12,沒閏傳回0
UINTmonthDays(UINTy,UINTm);〃傳回農(nóng)歷y年m月的總天數(shù)
myDATELunar(myDATEdate);〃輸入陽歷日期,返回陰歷日期
char*dayOfWeek(myDATEdate);〃輸入陽歷日期,返回星期幾
char*getLunarString(myDATEdate);//輸入陰歷日期,得到表示農(nóng)歷的字串
UINTsolarDays(UINTy,UINTm);〃傳回國歷y年某m+1月的天數(shù)
private:
charm_slunar[100];〃用于存儲農(nóng)歷信息
staticDWORDlunarInfo[];//
staticUINTsolarmonth[];
staticcharsSolarTerm[];
staticDWORDdTermlnfot];
staticcharsFtv[];
(J^docin銀豆網(wǎng)
文章內(nèi)容版權(quán)歸原作者所有VICHU.NET
indoc.in
):
#endif
ttinclude〃calendar.h〃
Sinclude<stdio.h>
DWORDcalendar::lunarlnfo[]={
0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,
0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0xld255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,
0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0xlab54,0x02b60,0x09570,0x052f2,0x04970,
0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0xl86e3,0x092e0,0xlc8d7,0x0c950,
0x0d4a0,0xld8a6,0x0b550,0x056a0,0xla5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,
0x06ca0,0x0b550,0x15355,0x04da0,0x0a5d0,0x14573,0x052d0,0x0a9a8,0x0e950,0x06aa0,
0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0,
0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b5a0,0xl95a6,
0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570,
0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0,
0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,
0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930,
心docin銀豆網(wǎng)
文章內(nèi)容版權(quán)歸原作者所有VICHU.NET
indoc.in
0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530,
0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,0x0a4d0,0xld0b6,0x0d250,0x0d520,0x0dd45,
0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0xlb255,0x06d20,OxOadaO
);
UINTcalendar::solarmonth[]=[31,28,31,30,31,30,31,31,30,31,30,31);
UINTcalendar::lYearDays(UINTy)
(
UINTi,sum=348;
for(i=0x8000;i>0x8;i?=l)
(
sum+=(lunarInfo[y-1900]&i)?1:0;
)
return(sum+leapDays(y));
)
UINTcalendar::leapDays(UINTy)
(
if(leapMonth(y))
(
return(lunarInfo[y-1900]&0x10000)?30:29;
)
心docin銀豆網(wǎng)
文章內(nèi)容版權(quán)歸原作者所有VICHU.NET
indoc.in
else
(
return0;
UINTcalendar::leapMonth(UINTy)
(
returnlunarlnfo[y-1900]&Oxf;
I
UINTcalendar::monthDays(UINTy,UINTm)
(
return(lunarlnfo[y-1900]&(0xl0000>>m))?30:29;
LONGcalendar::!DaysFroml900(myDATEdate)
(
LONGdays;
days=365*date.year+(date.year-1)/4-(date,year-1)/100+(date,year-1)/400-
(365*1900+(1900-1)/4-(1900-1)/100+(1900-1)/400);
心docin銀豆網(wǎng)
文章內(nèi)容版權(quán)歸原作者所有VICHU.NET
indoc.in
for(inti=0;i<date.month-1;i++)
{
days+=solarmonth[i];
)
days+=date.day;
if((date.year%4==0&&date.year%100!=0)||date.year%400==0)
{
if(date.month>2)
(
days++;
)
)
returndays;
myDATEcalendar::Lunar(myDATEdate)
(
LONGoffset;
inti,leap=0,temp=0;
myDATEretdate;
?docin銀豆網(wǎng)
文章內(nèi)容版權(quán)歸原作者所有VICHU.NET
indoc.in
offset=lDaysFroml900(date)-30;
for(i=1900;i<2050&&offset>0;i++)
temp=lYearDays(i);
offset-=temp;
if(offset<0)
offset+=temp;
i—;
retdate.year=i;
leap=leapMonth(i);
boolisLeap=false;
for(i=l;i<13&&offset>0;i++)
?docin銀豆網(wǎng)
文章內(nèi)容版權(quán)歸原作者所有VICHU.NET
indoc.in
if(leap>0&&i==(leap+l)&&isLeap==false)
(
—i;
isLeap=true;
temp=leapDays(retdate.year);
)
else
(
temp=monthDays(retdate.year,i);
}
if(isLeap==true&&i==(leap+l))
(
isLeap=false;
)
offset-=temp;
}
if(offset==0&&leap>0&&i==leap+l)
(
if(isLeap)
?docin銀豆網(wǎng)
文章內(nèi)容版權(quán)歸原作者所有VICHU.NET
indoc.in
isLeap=false;
)
else
(
isLeap=true;
—i;
)
)
if(offset<=0)
{
offset+=temp;
—i:
)
retdate.month=i;
retdate.day=offset;
retdate.isRunYue=isLeap;
returnretdate;
)
char*calendar::getLunarString(myDATEdate)
(
心docin銀豆網(wǎng)
文章內(nèi)容版權(quán)歸原作者所有VICHU.NET
indoc.in
TCHARszNongli[30],szNongliDay[10],szShuXiang[10];
constchar*cTianGan口={"甲","乙","丙","丁","戊","己"庚","辛","壬","癸”};
/*天干名稱*/
constchar*cDiZhi口={"子","丑"寅"卯〃,"辰"巳","午",〃未〃申",〃酉","戌
亥"};/*地支名稱*/
constchar*cShuXiang口={“鼠"牛","虎","兔","龍"蛇","馬","羊"猴","雞","狗
","豬"};/*屬相名稱*/
constchar*cDayName[]={"初一","初二","初三","初四","初五",/*農(nóng)歷日期名
*/
“初六〃,〃初七","初八","初九","初十”,
“十一〃十二"十三",〃十四","十五",
"十六","十七","十八","十九","二十",
“廿一",〃廿二","廿?三",〃廿四","廿五",
“廿六"廿七","廿八〃廿九"三十"};
constchar*cMonNameLJ={*,正,一,二,四,五,八,七,八,九,十
〃,〃十一〃,〃臘〃};
/*一生成農(nóng)歷天干、地支、屬相==>wNongli—*/
intnShuXiang=((date,year-4)%60)%12;
if(nShuXiang<0||nShuXiang>=sizeof(cShuXiang)/sizeof(cShuXiang[0]))
(
returnNULL;
}
wsprintf(szShuXiang,z,%sz,,cShuXiang[nShuXiang]);
心docin銀豆網(wǎng)
文章內(nèi)容版權(quán)歸原作者所有VICHU.NET
indoc.in
intnTianGan=((date,year-4)%60)%10;
if(nTianGan<0||nTianGan>=sizeof(cTianGan)/sizeof(cTianGan[0]))
(
returnNULL;
)
intnDiZhi=((date,year-4)%60)%12;
if(nDiZhi<0||nDiZhi>=sizeof(cDiZhi)/sizeof(cDiZhi[0]))
{
returnNULL;
)
wsprintf(szNongli,/z%s(%s%s)年〃,szShuXiang,cTianGan[nTianGan],cDiZhi[nDiZhi]);
/*一生成農(nóng)歷月、曰==>wNongliDay一*/
if(date,month<0||date,month>=sizeof(cMonName)/sizeof(cMonName[0]))
(
returnNULL;
)
if(date.isRunYue)
{
(J'docin銀豆網(wǎng)
文章內(nèi)容版權(quán)歸原作者所有VICHU.NET
indoc.in
wsprintf(szNongliDay,“閏%s",cMonName[date,month]);
)
else
(
strcpy(szNongliDay,cMonName[date,month]);
)
strcat(szNongliDay,〃月〃);
if(date,day<0|Idate,day>=sizeof(cDayName)/sizeof(cDayName[0]))
{
returnNULL;
)
strcat(szNongliDay,cDayName[date,day])
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 茶店品牌授權(quán)經(jīng)營合同-2025年度市場推廣計劃
- 二零二五年度個人手房車位使用權(quán)轉(zhuǎn)讓及車位租賃管理服務合同
- 二零二五年度食堂食品安全監(jiān)控用工合同
- 二零二五年度能源管理文件傳輸與監(jiān)控合同
- 二零二五年度房地產(chǎn)項目股權(quán)回購轉(zhuǎn)讓協(xié)議書
- 二零二五年度人工智能助手免責任協(xié)議書
- 二零二五年度學生宿舍租賃管理服務合同
- 二零二五年度農(nóng)業(yè)科技園區(qū)經(jīng)營權(quán)合作書
- 二零二五年度教育機構(gòu)貸款擔保合同
- 2025年度蔬菜大棚溫室租賃與農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)建設合同
- 不經(jīng)歷風雨怎么見彩虹》教學設計
- (綜合治理)修復工程指南(試行) - 貴州省重金屬污染防治與土壤修復網(wǎng)
- 公安筆錄模板之詢問嫌疑人(書面?zhèn)鲉局伟舶讣?
- 員工就餐簽到表
- A-level項目介紹(課堂PPT)
- 故障診斷技術(shù)的國內(nèi)外發(fā)展現(xiàn)狀(共3頁)
- 航海計算軟件---ETA計算器
- 光伏電站運維手冊
- 半導體及集成電路領(lǐng)域的撰寫及常見問題
- 初中《生物》(人教版)實驗目錄表
- 年產(chǎn)64萬件衛(wèi)生瓷原料車間
評論
0/150
提交評論