亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? calendar1.cpp

?? 這是我從網上找到的陰歷算法
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
		  iMonth = 11;  
		  iDay   = 11+WORD(iSpanDays);
		}
		else
		{
			iMonth = 12;
			iDay   =  WORD(iSpanDays) -18;
		}
		return  rcode;
	}
	//下面從陰歷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)	
			{
			   rcode = 1;
			   break;
			}
			iSpanDays -= tmp;
		}
		tmp = LOWORD(LunarMonthDays(iYear, ++iMonth));
	}
	//計算日
	iDay += WORD(iSpanDays);
	return rcode;
}

WORD CCalendar::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  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(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 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); 
		InvalidateRect(m_sSelRect);
		OnPaint();
		InvalidateRect(m_sSelRect);
    }
	SetFocus(); 
	CWnd::OnLButtonDown(nFlags, point);
}


void CCalendar::OnContextMenu(CWnd* pWnd, CPoint point) 
{
	m_oPopMenu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品一区二区三区三区| 欧美激情在线一区二区| 91香蕉视频在线| 国产精品99久久久久久有的能看| 日本美女视频一区二区| 日本欧美加勒比视频| 蜜臀av在线播放一区二区三区 | 国产精品一区二区你懂的| 美女国产一区二区三区| 免费一级片91| 激情五月播播久久久精品| 国产福利91精品一区| 不卡视频一二三| 91黄色激情网站| 欧美日韩免费高清一区色橹橹| 欧美日韩aaaaa| 日韩精品一区二区三区中文不卡 | 狠狠色丁香久久婷婷综| 国产电影一区二区三区| 91丨九色丨黑人外教| 欧美图区在线视频| 精品欧美一区二区久久| 国产精品视频免费看| 亚洲码国产岛国毛片在线| 亚洲成人av中文| 久久99久久久久久久久久久| 国产精品1区2区| 99久久精品国产麻豆演员表| 67194成人在线观看| 国产日韩欧美在线一区| 亚洲精品欧美综合四区| 乱一区二区av| 色欧美88888久久久久久影院| 制服丝袜av成人在线看| 中文字幕中文乱码欧美一区二区| 亚洲地区一二三色| 大胆亚洲人体视频| 91精品国产一区二区三区| 久久视频一区二区| 亚洲国产精品久久人人爱| 国产精品1区2区3区| 欧美精品三级日韩久久| 欧美韩日一区二区三区| 日韩av一级电影| 一本一本大道香蕉久在线精品| 欧美成人精品高清在线播放| 亚洲精品免费在线播放| 国产精品一二三四五| 欧美二区三区的天堂| 亚洲视频每日更新| 国产精品中文字幕一区二区三区| 欧美日韩国产成人在线91| 亚洲日本一区二区| 国产成人三级在线观看| 欧美成人三级电影在线| 亚洲丰满少妇videoshd| 97久久久精品综合88久久| 久久新电视剧免费观看| 麻豆极品一区二区三区| 欧美理论在线播放| 亚洲一区在线观看免费 | 老司机精品视频导航| 欧美在线影院一区二区| 综合久久一区二区三区| 成人a免费在线看| 欧美韩国日本综合| 成人美女视频在线看| 久久综合精品国产一区二区三区| 日韩精品欧美精品| 在线综合视频播放| 午夜免费欧美电影| 欧美妇女性影城| 亚洲国产精品尤物yw在线观看| 成人网在线免费视频| 亚洲国产高清在线| 成年人网站91| 亚洲婷婷综合久久一本伊一区| 国产精品综合av一区二区国产馆| 精品欧美一区二区三区精品久久| 久久精品国产99国产| 日韩免费在线观看| 国产一二精品视频| 中文成人av在线| 成人精品免费视频| 亚洲精品国产精品乱码不99| 一本到高清视频免费精品| 亚洲一区二区三区四区的| 欧美亚洲日本国产| 欧美aa在线视频| 精品国产髙清在线看国产毛片| 另类综合日韩欧美亚洲| 国产色一区二区| www.欧美日韩国产在线| 亚洲一区二区三区在线看 | 日韩中文字幕一区二区三区| 在线不卡免费欧美| 国产剧情一区在线| 亚洲同性gay激情无套| 欧美肥大bbwbbw高潮| 国产一区二区三区四区五区美女| 国产丝袜美腿一区二区三区| 91在线观看下载| 午夜视频一区在线观看| 久久久久一区二区三区四区| 91网站黄www| 日韩精品乱码免费| 国产欧美日韩在线| 欧美喷潮久久久xxxxx| 国产精品羞羞答答xxdd| 亚洲一区二区三区不卡国产欧美| 精品久久久久久久久久久久久久久 | 国产婷婷一区二区| 欧美色图片你懂的| 久久91精品久久久久久秒播| 国产精品国产三级国产三级人妇| 欧美日韩一区二区在线观看| 激情文学综合插| 亚洲综合成人在线| 日本一二三四高清不卡| 欧美挠脚心视频网站| 丁香一区二区三区| 免费精品视频最新在线| 亚洲欧美一区二区三区国产精品| 欧美tickling网站挠脚心| 色噜噜狠狠成人中文综合| 国产福利精品一区二区| 免费在线观看不卡| 亚瑟在线精品视频| 亚洲女人小视频在线观看| 久久久久九九视频| 欧美一区二区观看视频| 在线国产电影不卡| 91网站在线观看视频| 国产传媒欧美日韩成人| 久久精品国产99国产| 日本va欧美va精品发布| 亚洲成人高清在线| 亚洲自拍与偷拍| 一区二区成人在线观看| 成人免费在线播放视频| 中文字幕国产一区| 国产精品私房写真福利视频| 久久色在线视频| 久久免费看少妇高潮| 久久亚洲一区二区三区明星换脸| 日韩一区二区三区av| 欧美日韩五月天| 在线播放国产精品二区一二区四区 | 一本大道久久a久久精品综合| 韩国中文字幕2020精品| 极品销魂美女一区二区三区| 麻豆久久久久久| 久久99精品国产麻豆不卡| 久久丁香综合五月国产三级网站| 免费人成在线不卡| 免费不卡在线视频| 青青草精品视频| 久久99久久久久久久久久久| 久久电影国产免费久久电影| 激情文学综合网| 成人小视频在线| 99re8在线精品视频免费播放| 91网上在线视频| 欧美日韩电影在线| 精品国产乱码久久| 国产日韩欧美精品一区| 中文字幕一区二区三区视频| 一区二区高清视频在线观看| 亚洲综合自拍偷拍| 日韩国产欧美一区二区三区| 麻豆91在线播放免费| 国产成人小视频| 日本电影欧美片| 欧美一区二区三区视频免费播放| 欧美va日韩va| 亚洲欧美日韩综合aⅴ视频| 亚洲成人动漫在线观看| 韩国在线一区二区| 91女厕偷拍女厕偷拍高清| 欧美精品一级二级| 国产人久久人人人人爽| 亚洲精品水蜜桃| 精品亚洲成a人| 91国产丝袜在线播放| 精品久久久久久久人人人人传媒| 国产精品国产三级国产aⅴ中文| 一个色在线综合| 国产伦精品一区二区三区免费| 91免费国产视频网站| 欧美成人艳星乳罩| 亚洲综合一区二区三区| 国产一区二区三区美女| 91在线视频18| 欧美mv日韩mv国产网站| 玉米视频成人免费看| 精品无人区卡一卡二卡三乱码免费卡 | 另类小说综合欧美亚洲| www.欧美日韩| 久久奇米777| 日本成人中文字幕|