• 一个比较全的C++农历算法(转)


    这以前本是一个MFC代码,我在这个基础上修改成了标准C++的.. 
    即可以在VC里用,也可以在C++Builder里用..所以一并放到这里来, 
    希望有人喜欢..喜欢的就给点鼓励啊~~ 
    示例代码: 
    代码:
     
    void __fastcall TForm1::Button1Click(TObject *Sender) 
    { 
          xDate *Date_x=new xDate();//取系统时间初始化-:) 
     
            Memo1->Lines->Add("公历"+IntToStr(Date_x->GetYear()) +""); 
            Memo1->Lines->Add("公历"+IntToStr(Date_x->GetMonth())+""); 
            Memo1->Lines->Add("公历"+IntToStr(Date_x->GetDay())  +""); 
            if(Date_x->IsLeapYear(Date_x->GetYear())) 
     
                    Memo1->Lines->Add("今年是闰年"); 
            else 
                    Memo1->Lines->Add("今年不是闰年"); 
     
            Memo1->Lines->Add("今天是星期"+IntToStr(Date_x->WeekDay(Date_x->GetYear(),Date_x->GetMonth(),Date_x->GetDay()))); 
            Memo1->Lines->Add("公历:本月"+IntToStr(Date_x->MonthDays(Date_x->GetYear(),Date_x->GetMonth()))+""); 
            Memo1->Lines->Add("阴历:本月"+IntToStr(Date_x->LunarMonthDays(Date_x->GetYear(),Date_x->GetMonth()))+""); 
            Memo1->Lines->Add("阴历今年:"+IntToStr(Date_x->LunarYearDays(Date_x->GetYear()))+""); 
            //==================================================================// 
            char ch0[20]="天干记年法表示:"; 
            char Buffer0[8]; 
            Date_x->FormatLunarYear(Date_x->GetYear(),Buffer0); 
            strcat(ch0,Buffer0); 
            Memo1->Lines->Add(ch0); 
            //==================================================================// 
            char ch1[20]="月份中文表示法:"; 
            char Buffer1[8]; 
            Date_x->FormatMonth(Date_x->GetMonth(),Buffer1,true); 
            strcat(ch1,Buffer1); 
            Memo1->Lines->Add(ch1); 
            //==================================================================// 
            char ch2[20]="Day中文表示法:"; 
            char Buffer2[8]; 
            Date_x->FormatLunarDay(Date_x->GetDay(),Buffer2); 
            strcat(ch2,Buffer2); 
            Memo1->Lines->Add(ch2); 
            //==================================================================// 
            //计算两个日期相差的天数 
            Memo1->Lines->Add("距1956,2,21有:"+IntToStr(Date_x->CalcDateDiff(Date_x->GetYear(),Date_x->GetMonth(),Date_x->GetDay(),1956,2,21))+""); 
     
            //节气计算 
            WORD iLunarYear,  iLunarMonth,  iLunarDay; 
            WORD  n; 
            n=Date_x->GetLunarDate(Date_x->GetYear(),Date_x->GetMonth(),Date_x->GetDay(),iLunarYear,iLunarMonth,iLunarDay); 
            if(n) 
                    Memo1->Lines->Add(IntToStr(n)); 
            else 
                    Memo1->Lines->Add("不是节气"); 
     
            Memo1->Lines->Add("今天阴历是:"+IntToStr(iLunarYear)+"-"+IntToStr(iLunarMonth)+"-"+IntToStr(iLunarDay)); 
     
     
    } 
    //---------------------------------------------------------------------------
     
    头文件: 
    代码:
     
    //xDate.h 
    /************************************************************************************************************ 
                   Author  :xShandow 
             Dest    :A Date Class For C++ 
             Email   :chenzg@hftd.com 
             HomePage:http://www.hftd.com 
             Dev Env :Visual C++6.0 
             OS.     :Windows 2000 Professinal 
             Date    :2003-NOV-15 
     ************************************************************************************************************/ 
    #ifndef XDATE_H 
    #define XDATE_H  
     
    #include <windows.h> 
    extern const WORD START_YEAR; 
    extern const WORD END_YEAR ; 
     
    class xDate 
    { 
    private: 
       WORD    m_iYear, m_iMonth, m_iDay; 
       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); 
    public:  
       //=====================================================================================//
       xDate(WORD iYear, WORD iMonth, WORD iDay);  
       xDate(); 
       //=====================================================================================//
     
       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); 
       //=====================================================================================//
       //判断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 = TRUE);  
        
       //把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); 
    };  
     
    #endif //XDATE_H
     
     
    类实现: 
    代码:
     
    //xDate.cpp 
    #include "xDate.h"  
    //#include <windows.h> 
     
     
    extern WORD gLunarMonthDay[];  
    extern BYTE gLunarMonth[];  
    extern BYTE gLunarHolDay[];  
     
    const  WORD START_YEAR =1901;  
    const  WORD END_YEAR   =2050;  
    //===========================================================================//
    void xDate::l_InitData()  
    {  
       SYSTEMTIME systime;  
       ::GetSystemTime(&systime);  
        
       m_iYear  = systime.wYear;  
       m_iMonth = systime.wMonth;  
       m_iDay   = systime.wDay;  
    }  
    //===========================================================================//
    xDate::xDate(WORD iYear, WORD iMonth, WORD iDay)  
    {  
       if(!SetDate(iYear, iMonth, iDay))  
          l_InitData();  
    }  
    //===========================================================================//
    xDate::xDate()  
    {  
       l_InitData();  
    }  
    //===========================================================================//
    LONG xDate::CalcDateDiff(WORD iEndYear, WORD iEndMonth, WORD iEndDay,WORD  iStartYear, WORD iStartMonth, WORD iStartDay)  
    {  
       WORD monthday[]={0, 31, 59 ,90, 120, 151, 181, 212, 243, 273, 304, 334};  
       //计算两个年份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  xDate::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 xDate::GetLunarDate(WORD iYear, WORD iMonth, WORD iDay,WORD &iLunarYear, WORD &iLunarMonth, WORD &iLunarDay) 
    { 
       l_CalcLunarDate(iLunarYear, iLunarMonth, iLunarDay,CalcDateDiff(iYear, iMonth, iDay)); 
       return l_GetLunarHolDay(iYear, iMonth, iDay); 
    } 
    //===========================================================================//
    //根据节气数据存储格式,计算阳历iYear年iMonth月iDay日对应的节气, 
    WORD xDate::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 xDate::GetDate(WORD &iYear, WORD &iMonth, WORD &iDay)  
    {  
       iYear  = m_iYear;  
       iMonth = m_iMonth;  
       iDay   = m_iDay;  
    }  
    //===========================================================================//
    BOOL xDate::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 xDate::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 xDate::MonthDays(WORD iYear, WORD iMonth)  
    {  
       switch(iMonth)  
       {  
       case 1: //一  (月) 
       case 3: //三  (月) 
       case 5: //五  (月) 
       case 7: //七  (月) 
       case 8: //八  (月) 
       case 10://十  (月) 
       case 12://十二(月) 
          return 31;  
     
       case 4: //四  (月) 
       case 6: //六  (月) 
       case 9: //九  (月) 
       case 11://十一(月)  
          return 30;  
     
       case 2: //二  (月) 
          //如果是闰年  
          if(IsLeapYear(iYear))  
             return 29;  
          else  
             return 28;  
            
       }  
       return 0;  
    }  
    //===========================================================================//
    WORD xDate::GetLeapMonth(WORD iLunarYear)  
    {  
       BYTE &flag = gLunarMonth[(iLunarYear - START_YEAR)/2];  
       return  (iLunarYear - START_YEAR)%2 ? flag&0x0f : flag>>4;  
    }  
    //===========================================================================//
    LONG xDate::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(iLunarYear))  
          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 xDate::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 xDate::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 xDate::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 xDate::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); 
       } 
    } 
     
      
    /******************************************************************************  
    下面为阴历计算所需的数据,为节省存储空间,所以采用下面比较变态的存储方法.  
    *******************************************************************************/  
    //数组gLunarDay存入阴历1901年到2100年每年中的月天数信息,  
    //阴历每月只能是29或30天,一年用12(或13)个二进制位表示,对应位为1表30天,否则为29天  
    WORD gLunarMonthDay[]=  
    {  
       //测试数据只有1901.1.1 --2050.12.31  
       0X4ae0, 0Xa570, 0X5268, 0Xd260, 0Xd950, 0X6aa8, 0X56a0, 0X9ad0, 0X4ae8, 0X4ae0,   //1910  
       0Xa4d8, 0Xa4d0, 0Xd250, 0Xd548, 0Xb550, 0X56a0, 0X96d0, 0X95b0, 0X49b8, 0X49b0,   //1920  
       0Xa4b0, 0Xb258, 0X6a50, 0X6d40, 0Xada8, 0X2b60, 0X9570, 0X4978, 0X4970, 0X64b0,   //1930  
       0Xd4a0, 0Xea50, 0X6d48, 0X5ad0, 0X2b60, 0X9370, 0X92e0, 0Xc968, 0Xc950, 0Xd4a0,   //1940  
       0Xda50, 0Xb550, 0X56a0, 0Xaad8, 0X25d0, 0X92d0, 0Xc958, 0Xa950, 0Xb4a8, 0X6ca0,   //1950  
       0Xb550, 0X55a8, 0X4da0, 0Xa5b0, 0X52b8, 0X52b0, 0Xa950, 0Xe950, 0X6aa0, 0Xad50,   //1960  
       0Xab50, 0X4b60, 0Xa570, 0Xa570, 0X5260, 0Xe930, 0Xd950, 0X5aa8, 0X56a0, 0X96d0,   //1970  
       0X4ae8, 0X4ad0, 0Xa4d0, 0Xd268, 0Xd250, 0Xd528, 0Xb540, 0Xb6a0, 0X96d0, 0X95b0,   //1980  
       0X49b0, 0Xa4b8, 0Xa4b0, 0Xb258, 0X6a50, 0X6d40, 0Xada0, 0Xab60, 0X9370, 0X4978,   //1990  
       0X4970, 0X64b0, 0X6a50, 0Xea50, 0X6b28, 0X5ac0, 0Xab60, 0X9368, 0X92e0, 0Xc960,   //2000  
       0Xd4a8, 0Xd4a0, 0Xda50, 0X5aa8, 0X56a0, 0Xaad8, 0X25d0, 0X92d0, 0Xc958, 0Xa950,   //2010  
       0Xb4a0, 0Xb550, 0Xb550, 0X55a8, 0X4ba0, 0Xa5b0, 0X52b8, 0X52b0, 0Xa930, 0X74a8,   //2020  
       0X6aa0, 0Xad50, 0X4da8, 0X4b60, 0X9570, 0Xa4e0, 0Xd260, 0Xe930, 0Xd530, 0X5aa0,   //2030  
       0X6b50, 0X96d0, 0X4ae8, 0X4ad0, 0Xa4d0, 0Xd258, 0Xd250, 0Xd520, 0Xdaa0, 0Xb5a0,   //2040  
       0X56d0, 0X4ad8, 0X49b0, 0Xa4b8, 0Xa4b0, 0Xaa50, 0Xb528, 0X6d20, 0Xada0, 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, 0X77,   //1901  
          0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78, 0X78,   //1902  
          0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78, 0X78,   //1903  
          0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78, 0X87,   //1904  
          0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X77,   //1905  
          0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X78,   //1906  
          0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78, 0X78,   //1907  
          0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X87,   //1908  
          0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X77,   //1909  
          0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X78,   //1910  
          0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78, 0X78,   //1911  
          0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X87,   //1912  
          0X95, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X77,   //1913  
          0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X78,   //1914  
          0X96, 0XA5, 0X97, 0X96, 0X97, 0X87, 0X79, 0X79, 0X69, 0X69, 0X78, 0X78,   //1915  
          0X96, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X87,   //1916  
          0X95, 0XB4, 0X96, 0XA6, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78, 0X87,   //1917  
          0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X77,   //1918  
          0X96, 0XA5, 0X97, 0X96, 0X97, 0X87, 0X79, 0X79, 0X69, 0X69, 0X78, 0X78,   //1919  
          0X96, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X87,   //1920  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78, 0X87,   //1921  
          0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X77,   //1922  
          0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X69, 0X69, 0X78, 0X78,   //1923  
          0X96, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X87,   //1924  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78, 0X87,   //1925  
          0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X77,   //1926  
          0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78, 0X78,   //1927  
          0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X87,   //1928  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X87,   //1929  
          0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X77,   //1930  
          0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78, 0X78,   //1931  
          0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X87,   //1932  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X87,   //1933  
          0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X77,   //1934  
          0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X78,   //1935  
          0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X87,   //1936  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X87,   //1937  
          0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X77,   //1938  
          0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X78,   //1939  
          0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X87,   //1940  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X87,   //1941  
          0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X77,   //1942  
          0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X78,   //1943  
          0X96, 0XA5, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X87,   //1944  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X87,   //1945  
          0X95, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78, 0X77,   //1946  
          0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X78,   //1947  
          0X96, 0XA5, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X87,   //1948  
          0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X79, 0X78, 0X79, 0X77, 0X87,   //1949  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78, 0X77,   //1950  
          0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X78,   //1951  
          0X96, 0XA5, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X87,   //1952  
          0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X87,   //1953  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X68, 0X78, 0X87,   //1954  
          0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X77,   //1955  
          0X96, 0XA5, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X87,   //1956  
          0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X87,   //1957  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X87,   //1958  
          0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X77,   //1959  
          0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87, 0X87,   //1960  
          0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X87,   //1961  
          0X96, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X87,   //1962  
          0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X77,   //1963  
          0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87, 0X87,   //1964  
          0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X87,   //1965  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X87,   //1966  
          0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X77,   //1967  
          0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X87,   //1968  
          0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X87,   //1969  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X87,   //1970  
          0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X77,   //1971  
          0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X87,   //1972  
          0XA5, 0XB5, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X87,   //1973  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X87,   //1974  
          0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78, 0X77,   //1975  
          0X96, 0XA4, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X89, 0X88, 0X78, 0X87, 0X87,   //1976  
          0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X87,   //1977  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78, 0X87,   //1978  
          0X96, 0XB4, 0X96, 0XA6, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78, 0X77,   //1979  
          0X96, 0XA4, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X87,   //1980  
          0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X77, 0X87,   //1981  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X87,   //1982  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78, 0X77,   //1983  
          0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X87,   //1984  
          0XA5, 0XB4, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X87,   //1985  
          0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X87,   //1986  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X79, 0X78, 0X69, 0X78, 0X87,   //1987  
          0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X86,   //1988  
          0XA5, 0XB4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87, 0X87,   //1989  
          0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X79, 0X77, 0X87,   //1990  
          0X95, 0XB4, 0X96, 0XA5, 0X86, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X87,   //1991  
          0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X86,   //1992  
          0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87, 0X87,   //1993  
          0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X87,   //1994  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X76, 0X78, 0X69, 0X78, 0X87,   //1995  
          0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X86,   //1996  
          0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X87,   //1997  
          0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X87,   //1998  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X87,   //1999  
          0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X86,   //2000  
          0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X87,   //2001  
          0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X87,   //2002  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X87,   //2003  
          0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X86,   //2004  
          0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X87,   //2005  
          0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X87,   //2006  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X87,   //2007  
          0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87, 0X86,   //2008  
          0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X87,   //2009  
          0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X87,   //2010  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78, 0X87,   //2011  
          0X96, 0XB4, 0XA5, 0XB5, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87, 0X86,   //2012  
          0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X87,   //2013  
          0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X87,   //2014  
          0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77, 0X87,   //2015  
          0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87, 0X86,   //2016  
          0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X87,   //2017  
          0XA5, 0XB4, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X87,   //2018  
          0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X79, 0X77, 0X87,   //2019  
          0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87, 0X86,   //2020  
          0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X86,   //2021  
          0XA5, 0XB4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87, 0X87,   //2022  
          0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X79, 0X77, 0X87,   //2023  
          0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87, 0X96,   //2024  
          0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X86,   //2025  
          0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X87,   //2026  
          0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X87,   //2027  
          0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87, 0X96,   //2028  
          0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X86,   //2029  
          0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X87,   //2030  
          0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87, 0X87,   //2031  
          0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87, 0X96,   //2032  
          0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X86,   //2033  
          0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X78, 0X88, 0X78, 0X87, 0X87,   //2034  
          0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X87,   //2035  
          0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87, 0X96,   //2036  
          0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X86,   //2037  
          0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X87,   //2038  
          0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X87,   //2039  
          0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87, 0X96,   //2040  
          0XA5, 0XC3, 0XA5, 0XB5, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87, 0X86,   //2041  
          0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87, 0X87,   //2042  
          0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X87,   //2043  
          0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X88, 0X87, 0X96,   //2044  
          0XA5, 0XC3, 0XA5, 0XB4, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87, 0X86,   //2045  
          0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87, 0X87,   //2046  
          0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87, 0X87,   //2047  
          0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA5, 0X97, 0X87, 0X87, 0X88, 0X86, 0X96,   //2048  
          0XA4, 0XC3, 0XA5, 0XA5, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87, 0X86,   //2049  
          0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X78, 0X78, 0X87, 0X87    //2050  
           
    };
  • 相关阅读:
    python3+spark2.1+kafka0.8+sparkStreaming
    python3.5读取kafka中的数据
    kafka启动及查看topic命令【已用过的,待更新】
    filebeat+kafka失败
    情侣浪漫网页制作
    侃侃静态代理和动态代理
    MyBatis增删改查模板
    虚拟机和Docker的异同
    <context:annotation-config/>,<mvc:annotation-driven/>和<context:component-scan>之间的关系
    异步上传图片到另外一台服务器
  • 原文地址:https://www.cnblogs.com/15157737693zsp/p/9749343.html
Copyright © 2020-2023  润新知