«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告

本站技术贴除标明为“原创”的之外,其余均为网上转载,文中我会尽量保留原作者姓名,若有侵权请与我联系,我将第一时间做出修改。谢谢!

             ——既瑜


天气预报(南京)


我的分类(专题)

首页(183)
【趣味文摘】(22)
【五子连珠】(13)
【技术文档】(136)
【电脑技术】(6)
【疑难问题】(1)
【我的心情】(5)


最新日志
花语(中英文对照版)
各种花的花语
NTFS格式的7个精彩问答(pconli
童言无忌,有趣得一蹋
给MM修电脑的三个步骤[转载]
J2EE 面试题综合
JAVA编程规则
[转] P2P之UDP穿透NAT的原理与
[转]词法分析器
文件加密技术
一个让人发狂的PI求解C程序
[转]直线生成算法之DDA
[转]利用内核对象----互斥量实现应用
[转]如何正确的计算文件收发进度
双机调试VC程序
[转]分治法优化大整数乘法 C++实现
浮点数值的内存结构
[转]双链表实现大整数的加法与乘法[VC
拜占廷将军问题[转]
某人的挂QQ的程序源代码,虽然没用了,拿

最新回复
回复:vc中的CString的操作
回复:[转]分治法优化大整数乘法 C++
回复:[转]分治法优化大整数乘法 C++
回复:花语(中英文对照版)
回复:基本排序算法比较与选择[转载]
回复:c++中强制类型转换操作符小结
回复:c++中强制类型转换操作符小结
何必那么执着于是大头猫还是愤怒的小鸟,淡
回复:浮点数值的内存结构
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:32位位图到24位位图的转换
dren, ages 16 and 20
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:各种花的花语

留言板
签写新留言

不是0-1背包喔
桂花的花语``
谢谢
提议
提议

统计
blog名称:★既瑜★
日志总数:183
评论数量:636
留言数量:-25
访问次数:1406553
建立时间:2005年3月12日

链接


http://www.nju.edu.cn
http://bbs.nju.edu.cn 
http://www.t7-online.com
http://www.csdn.net
http://www.91f.net
http://www.crsky.com
我的MSN BLOG 

联系我

  OICQ:215768265
  njucs2001@hotmail.com
  erichoo1982@gmail.com

 

W3CHINA Blog首页    管理页面    写新日志    退出


[【技术文档】]一个不错的农历计算算法
既瑜(224499) 发表于 2005/3/16 16:59:39

#if !defined(AFX_CALENDAR1_H__FD9A6DAF_8C3C_493C_AAD4_612134D8F6D4__IN  CLUDED_)  #define AFX_CALENDAR1_H__FD9A6DAF_8C3C_493C_AAD4_612134D8F6D4__INCLUDE  D_     #if _MSC_VER > 1000  #pragma once  #endif // _MSC_VER > 1000  // Calendar1.h : header file  ///////  // CCalendar window  extern const WORD START_YEAR;  extern const WORD END_YEAR;     //define user message select changed  #define UM_SELCHANGE  (WM_USER+101)     class CCalendar : public CWnd  {  private:  WORD    m_iYear, m_iMonth, m_iDay;  CBitmap m_oBitMapList[42];  CMenu   m_oPopMenu;     public:  COLORREF m_dwBackColor,  m_dwForeColor;  COLORREF m_dwSelColor,   m_dwSelForeColor;  COLORREF m_dwTitleBkColor, m_dwTitleColor;     public:  CCalendar(WORD iYear, WORD iMonth, WORD iDay);  CCalendar();  virtual BOOL Create(RECT &rect, CWnd * pParentWnd, UINT nID);     public:  WORD GetYear(){return m_iYear;}  WORD GetMonth(){return m_iMonth;}  WORD GetDay(){return m_iDay;}  void GetDate(WORD &iYear, WORD &iMonth, WORD &iDay);  BOOL SetDate(WORD iYear, WORD iMonth, WORD iDay);     protected:  CButton m_obutToday;  //{{AFX_MSG(CCalendar)  afx_msg void OnPaint();  afx_msg void OnLButtonDown(UINT nFlags, CPoint point);  afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);  //}}AFX_MSG  afx_msg void OnTitleBkColor();  afx_msg void OnTitleColor();  afx_msg void OnSelColor();  afx_msg void OnForeColor();  DECLARE_MESSAGE_MAP()        public:  //判断iYear是不是闰年      static BOOL IsLeapYear(WORD iYear)  {return !(iYear%4)&&(iYear%100) || !(iYear%400);}     //计算iYear,iMonth,iDay对应是星期几 1年1月1日 --- 65535年12月31日  static WORD WeekDay(WORD iYear, WORD iMonth, WORD iDay);     //返回iYear年iMonth月的天数 1年1月 --- 65535年12月  static WORD MonthDays(WORD iYear, WORD iMonth);     //返回阴历iLunarYer年阴历iLunarMonth月的天数,如果iLunarMonth为闰月,        //高字为第二个iLunarMonth月的天数,否则高字为0  // 1901年1月---2050年12月  static LONG LunarMonthDays(WORD iLunarYear, WORD iLunarMonth);     //返回阴历iLunarYear年的总天数  // 1901年1月---2050年12月  static WORD LunarYearDays(WORD iLunarYear);     //返回阴历iLunarYear年的闰月月份,如没有返回0  // 1901年1月---2050年12月  static WORD GetLeapMonth(WORD iLunarYear);     //把iYear年格式化成天干记年法表示的字符串  static void FormatLunarYear(WORD  iYear, char *pBuffer);     //把iMonth格式化成中文字符串  static void FormatMonth(WORD iMonth, char *pBuffer, BOOL bLunar = TRU  E);         //把iDay格式化成中文字符串  static void FormatLunarDay(WORD  iDay, char *pBuffer);     //计算公历两个日期间相差的天数  1年1月1日 --- 65535年12月31日  static LONG CalcDateDiff(WORD iEndYear, WORD iEndMonth, WORD iEndDay,  WORD iStartYear = START_YEAR,  WORD iStartMonth =1, WORD iStartDay =1);     //计算公历iYear年iMonth月iDay日对应的阴历日期,返回对应的阴历节气 0-24        //1901年1月1日---2050年12月31日  static WORD GetLunarDate(WORD iYear, WORD iMonth, WORD iDay,                       WORD &iLunarYear, WORD &iLunarMonth, WORD &iLunarDay);     public:  virtual ~CCalendar();     private:  void   l_InitData();     //计算从1901年1月1日过iSpanDays天后的阴历日期  static void   l_CalcLunarDate(WORD &iYear, WORD &iMonth ,WORD &iDay,  LONG iSpanDays);      //计算公历iYear年iMonth月iDay日对应的节气 0-24,0表不是节气  static WORD   l_GetLunarHolDay(WORD iYear, WORD iMonth, WORD iDay);     WORD l_CalcSelectDay(POINT * pt);  void l_PaintTitle(CPaintDC &dc);  void l_PaintDate(CPaintDC &dc);  inline void l_PaintOneDay(CPaintDC &dc, CDC &imgdc, WORD &iDay,                          WORD &iLunarYear,                          WORD &iLunarMonth, WORD &iLuanrDay,  LONG startx, LONG starty);  };     //////////////////////////////////////////////////////////////////////   //{{AFX_INSERT_LOCATION}}  // Microsoft Visual C++ will insert additional declarations immediately before the previous line.  #endif // !defined(AFX_CALENDAR1_H__FD9A6DAF_8C3C_493C_AAD4_612134D8F6   D4__INCLUDED_)     ///.CPP  #include "stdafx.h"  #include "Calendar.h"  #include "Calendar1.h"  #include "Calendarfrm.h"     #ifdef _DEBUG  #define new DEBUG_NEW  #undef THIS_FILE  static char THIS_FILE[] = __FILE__;  #endif     //////////////////////////////////////////////////////////////////////   // CCalendar     extern WORD gLunarMonthDay[];  extern BYTE gLunarMonth[];  extern BYTE gLunarHolDay[];     const WORD START_YEAR =1901;  const WORD END_YEAR   =2050;     void CCalendar::l_InitData()  {  SYSTEMTIME systime;  ::GetSystemTime(&systime);     m_iYear  = systime.wYear;  m_iMonth = systime.wMonth;  m_iDay   = systime.wDay;     m_dwBackColor      = RGB(255,255,255);  m_dwForeColor      = RGB(0,0,0);  m_dwSelColor       = RGB(150,150,230);  m_dwSelForeColor   = RGB(255,255,255);  m_dwTitleBkColor     = RGB(190,70,70);  m_dwTitleColor = RGB(255,255,0);     }     CCalendar::CCalendar(WORD iYear, WORD iMonth, WORD iDay)  {     if(!SetDate(iYear, iMonth, iDay))     l_InitData();  }     CCalendar::CCalendar()  {     l_InitData();  }     CCalendar::~CCalendar()  {    DestroyWindow();  }        BEGIN_MESSAGE_MAP(CCalendar, CWnd)  //{{AFX_MSG_MAP(CCalendar)  ON_WM_PAINT()  ON_WM_LBUTTONDOWN()  ON_WM_CONTEXTMENU()  ON_WM_CREATE()  //}}AFX_MSG_MAP  ON_COMMAND(ID_TITLEBKCOLOR, OnTitleBkColor)  ON_COMMAND(ID_TITLECOLOR,   OnTitleColor)  ON_COMMAND(ID_SELCOLOR,     OnSelColor)  ON_COMMAND(ID_FORECOLOR,    OnForeColor)  END_MESSAGE_MAP()     #define COL_WIDTH    32  #define ROW_HEIGHT   20  #define TITLE_HEIGHT 20     BOOL CCalendar::Create(RECT &rect, CWnd *pParentWnd, UINT nID)  {      CString szClassName = AfxRegisterWndClass(CS_CLASSDC|CS_SAVEBITS|                                              CS_HREDRAW|CS_VREDRAW,                                                0, (HBRUSH)CBrush(RGB(25     5,255,255)), 0);     rect.right = rect.left + COL_WIDTH*7 +4;      rect.bottom = rect.top + TITLE_HEIGHT+ROW_HEIGHT*6 +10 ;  if(!CWnd::CreateEx(WS_EX_CLIENTEDGE, szClassName, _T(""),                  WS_CHILD|WS_VISIBLE|WS_TABSTOP, rect,  pParentWnd, nID, NULL))        return FALSE;         UpdateWindow();      for(int i=0; i<42; i++) m_oBitMapList[i].LoadBitmap(IDB_BITMAP1+i); m_oPopMenu.CreatePopupMenu(); m_oPopMenu.AppendMenu(MF_STRING, ID_TITLEBKCOLOR, _T("标题背景色...") ); m_oPopMenu.AppendMenu(MF_STRING, ID_TITLECOLOR, _T("标题前景色...") ); m_oPopMenu.AppendMenu(MF_STRING, ID_FORECOLOR , _T("日期前景色...") ); m_oPopMenu.AppendMenu(MF_STRING, ID_SELCOLOR, _T("选中区颜色..." )); return TRUE; } ////////////////////////////////////////////////////////////////////// /////// // CCalendar message handlers void CCalendar::l_PaintTitle(CPaintDC &dc) { CRect rect ; GetClientRect(&rect); rect.left ++; rect.top ++; rect.right --; rect.bottom = rect.top + TITLE_HEIGHT; dc.FillRect(&rect, &CBrush(m_dwTitleBkColor)); dc.SetBkColor(m_dwTitleBkColor); dc.SetTextColor(m_dwTitleColor); int startx = rect.left +8; char sztext[][3]={"日","一","二","三","四","五","六"}; for(int i=0; i <7; i++) { dc.TextOut(startx, rect.top +2, sztext[i]); startx += COL_WIDTH; } } void CCalendar:: l_PaintOneDay(CPaintDC &dc, CDC &imgdc, WORD &iDay, WORD &iLunarYear, WORD &iLunarMonth, WORD &iLunarDay, LONG startx, LONG starty) { char text[3]; sprintf(text, "%2d", iDay); // select icon if(iLunarDay!=1) imgdc.SelectObject(&m_oBitMapList[iLunarDay-1]); else imgdc.SelectObject(&m_oBitMapList[29+iLunarMonth]); // if day == current day if(iDay++ == m_iDay) { dc.FillRect(&CRect(startx-1, starty, startx +COL_WIDTH-3, starty + ROW_HEIGHT), &CBrush(m_dwSelColor)); dc.SetTextColor(m_dwSelForeColor); dc.SetBkColor(m_dwSelColor); dc.TextOut(startx, starty +2, text); dc.SetBkColor(m_dwBackColor); dc.SetTextColor(m_dwForeColor); dc.BitBlt(startx+17, starty +2, 8,16,&imgdc,0,0,MERGEPAINT); } else { dc.TextOut(startx, starty+2, text); dc.BitBlt(startx+17, starty +2, 8,16,&imgdc,0,0,SRCCOPY); } if(iLunarDay<29) iLunarDay++; else { LONG days = LunarMonthDays(iLunarYear, iLunarMonth); if(!HIWORD(days) && iLunarDay == LOWORD(days)) iLunarMonth = (iLunarMonth)%12+1; if(iLunarDay < LOBYTE(days)) iLunarDay++; else iLunarDay =1; } } void CCalendar::l_PaintDate(CPaintDC &dc) { CDC imgdc; imgdc.CreateCompatibleDC(&dc); RECT rect; GetClientRect(&rect); rect.top +=TITLE_HEIGHT+6; dc.SetBkColor(m_dwBackColor); dc.SetTextColor(m_dwForeColor); WORD day =1; WORD iLunarYear, iLunarMonth, iLunarDay; GetLunarDate(m_iYear, m_iMonth, 1, iLunarYear, iLunarMonth, iLunarD ay); for(int i=0; i<6; i++, rect.top += ROW_HEIGHT) { long startx = rect.left +2; for(int j=0; j<7; j++,startx += COL_WIDTH) { if(j < WeekDay(m_iYear, m_iMonth, 1) && i==0) continue; if(day > MonthDays(m_iYear, m_iMonth))     break;                l_PaintOneDay(dc, imgdc, day, iLunarYear, iLunarMonth,                              iLunarDay, startx, rect.top);     }  }  }     void CCalendar::OnPaint()  {  CPaintDC dc(this); // device context for painting     CFont *font = ((CCalendarFrm *)GetParent())->GetDispFont();  dc.SelectObject(font);      dc.SetMapMode(0);  l_PaintTitle(dc);  l_PaintDate(dc);     }     LONG CCalendar::CalcDateDiff(WORD iEndYear, WORD iEndMonth, WORD iEndD     ay,                      WORD  iStartYear, WORD iStartMonth, WORD iStartD     ay)  {  WORD monthday[]={0, 31, 59 ,90, 120, 151, 181, 212, 243, 273, 304, 33     4};     //计算两个年份1月1日之间相差的天数  LONG iDiffDays =(iEndYear - iStartYear)*365;  iDiffDays += (iEndYear-1)/4 - (iStartYear-1)/4;  iDiffDays -= ((iEndYear-1)/100 - (iStartYear-1)/100);  iDiffDays += (iEndYear-1)/400 - (iStartYear-1)/400;         //加上iEndYear年1月1日到iEndMonth月iEndDay日之间的天数      iDiffDays += monthday[iEndMonth-1] +                             (IsLeapYear(iEndYear)&&iEndMonth>2? 1: 0)     ;      iDiffDays += iEndDay;     //减去iStartYear年1月1日到iStartMonth月iStartDay日之间的天数  iDiffDays -= (monthday[iStartMonth-1] +                    (IsLeapYear(iStartYear)&&iStartMonth>2 ? 1: 0));      iDiffDays -= iStartDay;  return iDiffDays;  }     void  CCalendar::l_CalcLunarDate(WORD &iYear, WORD &iMonth ,WORD &iDay     , LONG iSpanDays)  {  //阳历1901年2月19日为阴历1901年正月初一  //阳历1901年1月1日到2月19日共有49天      if(iSpanDays <49) { iYear = START_YEAR-1; if(iSpanDays <19) { iMonth = 11; iDay = 11+WORD(iSpanDays); } else { iMonth = 12; iDay = WORD(iSpanDays) -18; } return ; } //下面从阴历1901年正月初一算起 iSpanDays -=49; iYear = START_YEAR; iMonth = 1; iDay = 1; //计算年 LONG tmp = LunarYearDays(iYear); while(iSpanDays >= tmp)  {  iSpanDays -= tmp;  tmp = LunarYearDays(++iYear);  }      //计算月  tmp = LOWORD(LunarMonthDays(iYear, iMonth));  while(iSpanDays >= tmp)  {  iSpanDays -= tmp;      if(iMonth == GetLeapMonth(iYear))  {  tmp  = HIWORD(LunarMonthDays(iYear, iMonth));  if(iSpanDays < tmp) break; iSpanDays -= tmp; } tmp = LOWORD(LunarMonthDays(iYear, ++iMonth)); } //计算日 iDay += WORD(iSpanDays); } WORD CCalendar::GetLunarDate(WORD iYear, WORD iMonth, WORD iDay, WORD &iLunarYear, WORD &iLunarMonth, WORD &iLun arDay) { l_CalcLunarDate(iLunarYear, iLunarMonth, iLunarDay, CalcDateDiff(iYear, iMonth, iDay)); return l_GetLunarHolDay(iYear, iMonth, iDay); } //根据节气数据存储格式,计算阳历iYear年iMonth月iDay日对应的节气, WORD CCalendar::l_GetLunarHolDay(WORD iYear, WORD iMonth, WORD iDay) { BYTE &flag = gLunarHolDay[(iYear - START_YEAR)*12+iMonth -1]; WORD day; if(iDay <15) day= 15 - ((flag>>4)&0x0f);  else  day = ((flag)&0x0f)+15;  if(iDay == day)     return (iMonth-1) *2 + (iDay>15? 1: 0) +1;  else     return 0;  }     void CCalendar::GetDate(WORD &iYear, WORD &iMonth, WORD &iDay)  {  iYear  = m_iYear;  iMonth = m_iMonth;  iDay   = m_iDay;  }     BOOL CCalendar::SetDate(WORD iYear, WORD iMonth, WORD iDay)  {    if(iYear < START_YEAR || iYear > END_YEAR || iMonth <1 || iMonth >12     )       return FALSE;       if(iDay <1 || iDay > MonthDays(iYear, iMonth))      return FALSE;       m_iYear   = iYear;    m_iMonth  = iMonth;    m_iDay    = iDay;       return TRUE;  }     WORD CCalendar::WeekDay(WORD iYear, WORD iMonth, WORD iDay)  {      //数组元素monthday[i]表示第i个月以前的总天数除以7的余数  WORD monthday[]={0,3,3,6,1,4,6,2,5,0,3,5};  WORD iDays = (iYear-1)%7 + (iYear-1)/4 - (iYear-1)/100 +(iYear-1)/400     ;  iDays += (monthday[iMonth-1] +iDay) ;  //如果iYear是闰年      if(IsLeapYear(iYear) && iMonth>2)  iDays++;  //返回:0,1,2,3,4,5,6表日、一、二、三、四、五、六  return iDays%7;  }     WORD CCalendar::MonthDays(WORD iYear, WORD iMonth)  {  switch(iMonth)  {  case 1:case 3:case 5:case 7:case 8:case 10:case 12:  return 31;  break;  case 4:case 6:case 9:case 11:  return 30;  break;  case 2:  //如果是闰年  if(IsLeapYear(iYear))  return 29;  else  return 28;  break;  }  return 0;  }     WORD CCalendar::GetLeapMonth(WORD iLunarYear)  {  BYTE &flag = gLunarMonth[(iLunarYear - START_YEAR)/2];    return  (iLunarYear - START_YEAR)%2 ? flag&0x0f : flag>>4;  }     LONG CCalendar::LunarMonthDays(WORD iLunarYear, WORD iLunarMonth)  {  if(iLunarYear < START_YEAR) return 30L; WORD height =0 ,low =29; int iBit = 16 - iLunarMonth; if(iLunarMonth > GetLeapMonth(iLunarYear) && GetLeapMonth(iLunarYe     ar))     iBit --;     if(gLunarMonthDay[iLunarYear - START_YEAR] & (1<<iBit)) low ++; if(iLunarMonth == GetLeapMonth(iLunarYear)) if(gLunarMonthDay[iLunarYear - START_YEAR] & (1<< (iBit -1))) height =30; else height =29; return MAKELONG(low, height); } WORD CCalendar::LunarYearDays(WORD iLunarYear) { /* WORD days=348 ; //12*29 int month = 12 ; //如果iYear年有闰月,则为13个月 if(gLanarMonth[iYear - START_YEAR]) month ++; //如果某月是三十天则days++ while(month >=0 && (gLanarMonthDay[iYear - START_YEAR] & (1 << (16 - month)))) { days ++; month --; } return days; */ WORD days =0; for(WORD i=1; i<=12; i++) { LONG tmp = LunarMonthDays(iLunarYear ,i); days += HIWORD(tmp); days += LOWORD(tmp); } return days; } void CCalendar::FormatLunarYear(WORD iYear, char *pBuffer) { char szText1[]="甲乙丙丁戊己庚辛壬癸"; char szText2[]="子丑寅卯辰巳午未申酉戌亥"; char szText3[]="鼠牛虎免龙蛇马羊猴鸡狗猪"; memcpy(pBuffer, szText1+((iYear-4)%10)*2,2); memcpy(pBuffer+2,szText2+((iYear-4)%12)*2,2); pBuffer[4]=' '; memcpy(pBuffer+5,szText3+((iYear-4)%12)*2,2); strcpy(pBuffer+7,"年"); } void CCalendar::FormatMonth(WORD iMonth, char *pBuffer, BOOL bLunar) { if(!bLunar && iMonth==1) { strcpy(pBuffer, " 一月"); return; } char szText[]="正二三四五六七八九十"; if(iMonth<=10) { memcpy(pBuffer, " ", 2); memcpy(pBuffer+2, szText + (iMonth -1)*2, 2); strcpy(pBuffer+4 , "月"); return; } if (iMonth == 11) strcpy(pBuffer, "十一"); else strcpy(pBuffer, "十二"); strcpy(pBuffer+4 , "月"); } void CCalendar::FormatLunarDay(WORD iDay, char *pBuffer) { char szText1[]="初十廿三"; char szText2[]="一二三四五六七八九十"; if(iDay != 20 && iDay !=30) { memcpy(pBuffer, szText1 + (iDay-1)/10*2 ,2); memcpy(pBuffer+2, szText2 + ((iDay-1)%10)*2 ,2); pBuffer[4]='\0'; } else { memcpy(pBuffer, szText1 + iDay/10*2, 2); strcpy(pBuffer+2, szText2 +18); } } WORD CCalendar::l_CalcSelectDay(POINT * pt) { RECT rect; GetClientRect(&rect); WORD iRow = (pt->y - rect.top -26)/ROW_HEIGHT;  WORD iCol = (pt->x - rect.left )/COL_WIDTH;     WORD startcol ,endrow, endcol;  startcol = WeekDay(m_iYear, m_iMonth, 1);  endcol   = WeekDay(m_iYear, m_iMonth, MonthDays(m_iYear,m_iMonth));     endrow   = (MonthDays(m_iYear, m_iMonth) + startcol -1)/7 ;      if(iRow == 0 && iCol < startcol || iRow == endrow && iCol > endcol     ||  iRow > endrow)  return 0;  return iRow *7 + iCol + 1 - startcol ;  }     void CCalendar::OnLButtonDown(UINT nFlags, CPoint point)  {  WORD day = l_CalcSelectDay(&point);  if(day !=0 && day != m_iDay)  {  m_iDay = day;  ::PostMessage(GetParent()->m_hWnd, UM_SELCHANGE, MAKELONG(m_iMonth,  m_iYear), m_iDay);      }  SetFocus();  CWnd::OnLButtonDown(nFlags, point);  }        void CCalendar::OnContextMenu(CWnd* pWnd, CPoint point)  {  m_oPopMenu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, p     oint.y,  this);  }     void CCalendar::OnTitleBkColor()  {    CColorDialog colordlg;    if(colordlg.DoModal() != IDOK)    return;    m_dwTitleBkColor = colordlg.GetColor();    Invalidate();  }     void CCalendar::OnTitleColor()  {  CColorDialog colordlg;    if(colordlg.DoModal() != IDOK)    return;    m_dwTitleColor = colordlg.GetColor();    Invalidate();  }     void CCalendar::OnSelColor()  {    CColorDialog colordlg;    if(colordlg.DoModal() != IDOK)    return;       m_dwSelColor = colordlg.GetColor();    Invalidate();  }     void CCalendar::OnForeColor()  {  CColorDialog colordlg;    if(colordlg.DoModal() != IDOK)    return;       m_dwForeColor = colordlg.GetColor();    Invalidate();  }     #undef COL_WIDTH  #undef ROW_HEIGHT  #undef TITLE_HEIGHT  /*********************************************************************     *********    下面为阴历计算所需的数据,为节省存储空间,所以采用下面比较变态的存储方     法.     **********************************************************************     *********/  //数组gLunarDay存入阴历1901年到2100年每年中的月天数信息,  //阴历每月只能是29或30天,一年用12(或13)个二进制位表示,对应位为1表3     0天,否则为29天  WORD gLunarMonthDay[]=  {  //测试数据只有1901.1.1 --2050.12.31    0X4ae0, 0Xa570, 0X5268, 0Xd260, 0Xd950, 0X6aa8, 0X56a0, 0X9ad0, 0X4a     e8, 0X4ae0,   //1910    0Xa4d8, 0Xa4d0, 0Xd250, 0Xd548, 0Xb550, 0X56a0, 0X96d0, 0X95b0, 0X49     b8, 0X49b0,   //1920    0Xa4b0, 0Xb258, 0X6a50, 0X6d40, 0Xada8, 0X2b60, 0X9570, 0X4978, 0X49     70, 0X64b0,   //1930    0Xd4a0, 0Xea50, 0X6d48, 0X5ad0, 0X2b60, 0X9370, 0X92e0, 0Xc968, 0Xc9     50, 0Xd4a0,   //1940    0Xda50, 0Xb550, 0X56a0, 0Xaad8, 0X25d0, 0X92d0, 0Xc958, 0Xa950, 0Xb4     a8, 0X6ca0,   //1950    0Xb550, 0X55a8, 0X4da0, 0Xa5b0, 0X52b8, 0X52b0, 0Xa950, 0Xe950, 0X6a     a0, 0Xad50,   //1960    0Xab50, 0X4b60, 0Xa570, 0Xa570, 0X5260, 0Xe930, 0Xd950, 0X5aa8, 0X56     a0, 0X96d0,   //1970    0X4ae8, 0X4ad0, 0Xa4d0, 0Xd268, 0Xd250, 0Xd528, 0Xb540, 0Xb6a0, 0X96     d0, 0X95b0,   //1980    0X49b0, 0Xa4b8, 0Xa4b0, 0Xb258, 0X6a50, 0X6d40, 0Xada0, 0Xab60, 0X93     70, 0X4978,   //1990    0X4970, 0X64b0, 0X6a50, 0Xea50, 0X6b28, 0X5ac0, 0Xab60, 0X9368, 0X92     e0, 0Xc960,   //2000    0Xd4a8, 0Xd4a0, 0Xda50, 0X5aa8, 0X56a0, 0Xaad8, 0X25d0, 0X92d0, 0Xc9     58, 0Xa950,   //2010    0Xb4a0, 0Xb550, 0Xb550, 0X55a8, 0X4ba0, 0Xa5b0, 0X52b8, 0X52b0, 0Xa9     30, 0X74a8,   //2020    0X6aa0, 0Xad50, 0X4da8, 0X4b60, 0X9570, 0Xa4e0, 0Xd260, 0Xe930, 0Xd5     30, 0X5aa0,   //2030    0X6b50, 0X96d0, 0X4ae8, 0X4ad0, 0Xa4d0, 0Xd258, 0Xd250, 0Xd520, 0Xda     a0, 0Xb5a0,   //2040    0X56d0, 0X4ad8, 0X49b0, 0Xa4b8, 0Xa4b0, 0Xaa50, 0Xb528, 0X6d20, 0Xad     a0, 0X55b0,   //2050     };     //数组gLanarMonth存放阴历1901年到2050年闰月的月份,如没有则为0,每字节     存两年  BYTE  gLunarMonth[]=  {  0X00, 0X50, 0X04, 0X00, 0X20,   //1910  0X60, 0X05, 0X00, 0X20, 0X70,   //1920  0X05, 0X00, 0X40, 0X02, 0X06,   //1930  0X00, 0X50, 0X03, 0X07, 0X00,   //1940  0X60, 0X04, 0X00, 0X20, 0X70,   //1950  0X05, 0X00, 0X30, 0X80, 0X06,   //1960  0X00, 0X40, 0X03, 0X07, 0X00,   //1970  0X50, 0X04, 0X08, 0X00, 0X60,   //1980  0X04, 0X0a, 0X00, 0X60, 0X05,   //1990  0X00, 0X30, 0X80, 0X05, 0X00,   //2000  0X40, 0X02, 0X07, 0X00, 0X50,   //2010  0X04, 0X09, 0X00, 0X60, 0X04,   //2020  0X00, 0X20, 0X60, 0X05, 0X00,   //2030  0X30, 0Xb0, 0X06, 0X00, 0X50,   //2040  0X02, 0X07, 0X00, 0X50, 0X03    //2050  };     //数组gLanarHoliDay存放每年的二十四节气对应的阳历日期  //每年的二十四节气对应的阳历日期几乎固定,平均分布于十二个月中  //   1月          2月         3月         4月         5月         6月        //小寒 大寒   立春  雨水   惊蛰 春分   清明 谷雨   立夏 小满   芒种 夏     至  //   7月          8月         9月         10月       11月        12月        //小暑 大暑   立秋  处暑   白露 秋分   寒露 霜降   立冬 小雪   大雪 冬     至     /*********************************************************************     ************  节气无任何确定规律,所以只好存表,要节省空间,所以....    下面这种存法实在是太变态了,你就将就着看吧  **********************************************************************     ************/  //数据格式说明:  //如1901年的节气为  //  1月     2月     3月   4月    5月   6月   7月    8月   9月    10月     11月     12月  // 6, 21, 4, 19,  6, 21, 5, 21, 6,22, 6,22, 8, 23, 8, 24, 8, 24, 8, 24     , 8, 23, 8, 22  // 9, 6,  11,4,   9, 6,  10,6,  9,7,  9,7,  7, 8,  7, 9,  7,  9, 7,  9     , 7,  8, 7, 15  //上面第一行数据为每月节气对应日期,15减去每月第一个节气,每月第二个节气     减去15得第二行  // 这样每月两个节气对应数据都小于16,每月用一个字节存放,高位存放第一个节     气数据,低位存放  //第二个节气的数据,可得下表     BYTE gLunarHolDay[]=  {  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X7     7,   //1901  0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78, 0X7     8,   //1902  0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78, 0X7     8,   //1903  0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78, 0X8     7,   //1904  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X7     7,   //1905  0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X7     8,   //1906  0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78, 0X7     8,   //1907  0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X8     7,   //1908  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X7     7,   //1909  0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X7     8,   //1910  0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78, 0X7     8,   //1911  0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X8     7,   //1912  0X95, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X7     7,   //1913  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X7     8,   //1914  0X96, 0XA5, 0X97, 0X96, 0X97, 0X87, 0X79, 0X79, 0X69, 0X69, 0X78, 0X7     8,   //1915  0X96, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X8     7,   //1916  0X95, 0XB4, 0X96, 0XA6, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78, 0X8     7,   //1917  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X7     7,   //1918  0X96, 0XA5, 0X97, 0X96, 0X97, 0X87, 0X79, 0X79, 0X69, 0X69, 0X78, 0X7     8,   //1919  0X96, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X8     7,   //1920  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78, 0X8     7,   //1921  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X7     7,   //1922  0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X69, 0X69, 0X78, 0X7     8,   //1923  0X96, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X8     7,   //1924  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78, 0X8     7,   //1925  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X7     7,   //1926  0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78, 0X7     8,   //1927  0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X8     7,   //1928  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X8     7,   //1929  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X7     7,   //1930  0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78, 0X7     8,   //1931  0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X8     7,   //1932  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X8     7,   //1933  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X7     7,   //1934  0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X7     8,   //1935  0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X8     7,   //1936  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X8     7,   //1937  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X7     7,   //1938  0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X7     8,   //1939  0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X8     7,   //1940  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X8     7,   //1941  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X7     7,   //1942  0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X7     8,   //1943  0X96, 0XA5, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X8     7,   //1944  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X8     7,   //1945  0X95, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78, 0X7     7,   //1946  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X7     8,   //1947  0X96, 0XA5, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X8     7,   //1948  0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X79, 0X78, 0X79, 0X77, 0X8     7,   //1949  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78, 0X7     7,   //1950  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X7     8,   //1951  0X96, 0XA5, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X8     7,   //1952  0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X8     7,   //1953  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X68, 0X78, 0X8     7,   //1954  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X7     7,   //1955  0X96, 0XA5, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X8     7,   //1956  0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X8     7,   //1957  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X8     7,   //1958  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X7     7,   //1959  0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //1960  0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X8     7,   //1961  0X96, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X8     7,   //1962  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X7     7,   //1963  0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //1964  0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X8     7,   //1965  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X8     7,   //1966  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X7     7,   //1967  0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //1968  0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X8     7,   //1969  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X8     7,   //1970  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X7     7,   //1971  0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //1972  0XA5, 0XB5, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X8     7,   //1973  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X8     7,   //1974  0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78, 0X7     7,   //1975  0X96, 0XA4, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X89, 0X88, 0X78, 0X87, 0X8     7,   //1976  0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X8     7,   //1977  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78, 0X8     7,   //1978  0X96, 0XB4, 0X96, 0XA6, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78, 0X7     7,   //1979  0X96, 0XA4, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //1980  0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X77, 0X8     7,   //1981  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X8     7,   //1982  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78, 0X7     7,   //1983  0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //1984  0XA5, 0XB4, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X8     7,   //1985  0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X8     7,   //1986  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X79, 0X78, 0X69, 0X78, 0X8     7,   //1987  0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X8     6,   //1988  0XA5, 0XB4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //1989  0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X79, 0X77, 0X8     7,   //1990  0X95, 0XB4, 0X96, 0XA5, 0X86, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X8     7,   //1991  0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X8     6,   //1992  0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //1993  0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X8     7,   //1994  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X76, 0X78, 0X69, 0X78, 0X8     7,   //1995  0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X8     6,   //1996  0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //1997  0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X8     7,   //1998  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X8     7,   //1999  0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X8     6,   //2000  0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //2001  0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X8     7,   //2002  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X8     7,   //2003  0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X8     6,   //2004  0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //2005  0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X8     7,   //2006  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X8     7,   //2007  0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87, 0X8     6,   //2008  0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //2009  0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X8     7,   //2010  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78, 0X8     7,   //2011  0X96, 0XB4, 0XA5, 0XB5, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87, 0X8     6,   //2012  0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //2013  0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X8     7,   //2014  0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X8     7,   //2015  0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87, 0X8     6,   //2016  0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //2017  0XA5, 0XB4, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X8     7,   //2018  0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X79, 0X77, 0X8     7,   //2019  0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87, 0X8     6,   //2020  0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X8     6,   //2021  0XA5, 0XB4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //2022  0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X79, 0X77, 0X8     7,   //2023  0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87, 0X9     6,   //2024  0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X8     6,   //2025  0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //2026  0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X8     7,   //2027  0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87, 0X9     6,   //2028  0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X8     6,   //2029  0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //2030  0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X8     7,   //2031  0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87, 0X9     6,   //2032  0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X8     6,   //2033  0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X78, 0X88, 0X78, 0X87, 0X8     7,   //2034  0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X8     7,   //2035  0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87, 0X9     6,   //2036  0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X8     6,   //2037  0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //2038  0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X8     7,   //2039  0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87, 0X9     6,   //2040  0XA5, 0XC3, 0XA5, 0XB5, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87, 0X8     6,   //2041  0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //2042  0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X8     7,   //2043  0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X88, 0X87, 0X9     6,   //2044  0XA5, 0XC3, 0XA5, 0XB4, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87, 0X8     6,   //2045  0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X8     7,   //2046  0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X8     7,   //2047  0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA5, 0X97, 0X87, 0X87, 0X88, 0X86, 0X9     6,   //2048  0XA4, 0XC3, 0XA5, 0XA5, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87, 0X8     6,   //2049  0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X78, 0X78, 0X87, 0X8     7    //2050     };

阅读全文(6050) | 回复(1) | 编辑 | 精华

回复:查寻...
小彬(游客)发表评论于2006/5/27 17:03:20

请问:阴历1990.1.6出世的人当年的公历日期为多少。希望你能回答我-谢谢! 可以发邮件给我地址:cheng1990713@126.com.

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除

» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)

站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.375 second(s), page refreshed 144775861 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号