免费黄色欧美视频-免费黄色美女视频-免费黄色毛片视频-免费黄色毛片-免费黄色国产视频-免费黄色大片在线观看

二維碼
企資網(wǎng)

掃一掃關(guān)注

當(dāng)前位置: 首頁 » 企業(yè)資訊 » 農(nóng)業(yè) » 正文

C也通用節(jié)氣類庫__農(nóng)歷類(很全面)

放大字體  縮小字體 發(fā)布日期:2022-01-18 05:57:15    作者:付宗潔    瀏覽次數(shù):131
導(dǎo)讀

自己整理得,可以分享學(xué)習(xí)高質(zhì)量代碼,每周期布置學(xué)習(xí)任務(wù),激發(fā)學(xué)習(xí)C#興趣!用法: DateTime dt = mc.SelectionStart;c = new EcanChineseCalendar(dt);StringBuilder dayInfo = new StringBuilder();dayInfo.Appen

自己整理得,可以分享學(xué)習(xí)高質(zhì)量代碼,每周期布置學(xué)習(xí)任務(wù),激發(fā)學(xué)習(xí)C#興趣!

用法:

DateTime dt = mc.SelectionStart;
c = new EcanChineseCalendar(dt);
StringBuilder dayInfo = new StringBuilder();
dayInfo.Append("陽歷:" + c.DateString + "\r\n");//陽歷日期
dayInfo.Append("農(nóng)歷:" + c.ChineseDateString + "\r\n");//農(nóng)歷日期
dayInfo.Append("星期:" + c.WeekDayStr);//星期
dayInfo.Append("時(shí)辰:" + c.ChineseHour + "\r\n");//時(shí)辰
dayInfo.Append("屬相:" + c.AnimalString + "\r\n");//屬相
dayInfo.Append("節(jié)氣:" + c.ChineseTwentyFourDay + "\r\n");//節(jié)氣
dayInfo.Append("前一個(gè)節(jié)氣:" + c.ChineseTwentyFourPrevDay + "\r\n");//前一個(gè)節(jié)氣
dayInfo.Append("下一個(gè)節(jié)氣:" + c.ChineseTwentyFourNextDay + "\r\n");//下一個(gè)節(jié)氣
dayInfo.Append("節(jié)日:" + c.DateHoliday + "\r\n");//節(jié)日
dayInfo.Append("干支:" + c.GanZhiDateString + "\r\n");//干支
dayInfo.Append("星宿:" + c.ChineseConstellation + "\r\n");//星宿
dayInfo.Append("星座:" + c.Constellation + "\r\n");//星座



using System;
using System.Collections.Generic;
using System.Text;

namespace AH.BI.MWeb.Service
{
#region ChineseCalendarException
/// <summary>
/// 華夏日歷異常處理
/// </summary>
public class newCalendarException : System.Exception
{
public newCalendarException(string msg)
: base(msg)
{
}
}
#endregion

public class EcanChineseCalendar
{
#region 內(nèi)部結(jié)構(gòu)
private struct SolarHolidayStruct//陽歷
{
public int Month;
public int Day;
public int Recess; //假期長度
public string HolidayName;
public SolarHolidayStruct(int month, int day, int recess, string name)
{
Month = month;
Day = day;
Recess = recess;
HolidayName = name;
}
}

private struct LunarHolidayStruct//農(nóng)歷
{
public int Month;
public int Day;
public int Recess;
public string HolidayName;

public LunarHolidayStruct(int month, int day, int recess, string name)
{
Month = month;
Day = day;
Recess = recess;
HolidayName = name;
}
}

private struct WeekHolidayStruct
{
public int Month;
public int WeekAtMonth;
public int WeekDay;
public string HolidayName;

public WeekHolidayStruct(int month, int weekAtMonth, int weekDay, string name)
{
Month = month;
WeekAtMonth = weekAtMonth;
WeekDay = weekDay;
HolidayName = name;
}
}
#endregion

#region 內(nèi)部變量
private DateTime _date;
private DateTime _datetime;

private int _cYear;
private int _cMonth;
private int _cDay;
private bool _cIsLeapMonth; //當(dāng)月是否閏月
private bool _cIsLeapYear; //當(dāng)年是否有閏月
#endregion

#region 基礎(chǔ)數(shù)據(jù)
#region 基本常量
private const int MinYear = 1900;
private const int MaxYear = 2050;
private static DateTime MinDay = new DateTime(1900, 1, 30);
private static DateTime MaxDay = new DateTime(2049, 12, 31);
private const int GanZhiStartYear = 1864; //干支計(jì)算起始年
private static DateTime GanZhiStartDay = new DateTime(1899, 12, 22);//起始日
private const string HZNum = "零一二三四五六七八九";
private const int AnimalStartYear = 1900; //1900年為鼠年
private static DateTime ChineseConstellationReferDay = new DateTime(2007, 9, 13);//28星宿參考值,本期為角
#endregion

#region 陰歷數(shù)據(jù)
/// <summary>
/// 于網(wǎng)上得農(nóng)歷數(shù)據(jù)
/// </summary>
/// <remarks>
/// 數(shù)據(jù)結(jié)構(gòu)如下,共使用17位數(shù)據(jù)
/// 第17位:表示閏月天數(shù),0表示29天 1表示30天
/// 第16位-第5位(共12位)表示12個(gè)月,其中第16位表示第壹月,如果該月為30天則為1,29天為0
/// 第4位-第1位(共4位)表示閏月是哪個(gè)月,如果當(dāng)年沒有閏月,則置0
///</remarks>
private static int[] LunarDateArray = new int[]{
0x04BD8,0x04AE0,0x0A570,0x054D5,0x0D260,0x0D950,0x16554,0x056A0,0x09AD0,0x055D2,
0x04AE0,0x0A5B6,0x0A4D0,0x0D250,0x1D255,0x0B540,0x0D6A0,0x0ADA2,0x095B0,0x14977,
0x04970,0x0A4B0,0x0B4B5,0x06A50,0x06D40,0x1AB54,0x02B60,0x09570,0x052F2,0x04970,
0x06566,0x0D4A0,0x0EA50,0x06E95,0x05AD0,0x02B60,0x186E3,0x092E0,0x1C8D7,0x0C950,
0x0D4A0,0x1D8A6,0x0B550,0x056A0,0x1A5B4,0x025D0,0x092D0,0x0D2B2,0x0A950,0x0B557,
0x06CA0,0x0B550,0x15355,0x04DA0,0x0A5B0,0x14573,0x052B0,0x0A9A8,0x0E950,0x06AA0,
0x0AEA6,0x0AB50,0x04B60,0x0AAE4,0x0A570,0x05260,0x0F263,0x0D950,0x05B57,0x056A0,
0x096D0,0x04DD5,0x04AD0,0x0A4D0,0x0D4D4,0x0D250,0x0D558,0x0B540,0x0B6A0,0x195A6,
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,
0x07954,0x06AA0,0x0AD50,0x05B52,0x04B60,0x0A6E6,0x0A4E0,0x0D260,0x0EA65,0x0D530,
0x05AA0,0x076A3,0x096D0,0x04BD7,0x04AD0,0x0A4D0,0x1D0B6,0x0D250,0x0D520,0x0DD45,
0x0B5A0,0x056D0,0x055B2,0x049B0,0x0A577,0x0A4B0,0x0AA50,0x1B255,0x06D20,0x0ADA0,
0x14B63
};

#endregion

#region 星座名稱
private static string[] _constellationName =
{
"白羊座", "金牛座", "雙子座",
"巨蟹座", "獅子座", "處女座",
"天秤座", "天蝎座", "射手座",
"摩羯座", "水瓶座", "雙魚座"
};
#endregion

#region 二十四節(jié)氣
private static string[] _lunarHolidayName =
{
"小寒", "大寒", "立春", "雨水",
"驚蟄", "春分", "清明", "谷雨",
"立夏", "小滿", "芒種", "夏至",
"小暑", "大暑", "立秋", "處暑",
"白露", "秋分", "寒露", "霜降",
"立冬", "小雪", "大雪", "冬至"
};
#endregion

#region 二十八星宿
private static string[] _chineseConstellationName =
{
//四 五 六 日 一 二 三
"角木蛟","亢金龍","女土蝠","房日兔","心月狐","尾火虎","箕水豹",
"斗木獬","牛金牛","氐土貉","虛日鼠","危月燕","室火豬","壁水獝",
"奎木狼","婁金狗","胃土彘","昴日雞","畢月烏","觜火猴","參水猿",
"井木犴","鬼金羊","柳土獐","星日馬","張?jiān)侣?em>","翼火蛇","獵水蚓"
};
#endregion

#region 節(jié)氣數(shù)據(jù)
private static string[] SolarTerm = new string[] { "小寒", "大寒", "立春", "雨水", "驚蟄", "春分", "清明", "谷雨", "立夏", "小滿", "芒種", "夏至", "小暑", "大暑", "立秋", "處暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至" };
private static int[] sTermInfo = new int[] { 0, 21208, 42467, 63836, 85337, 107014, 128867, 150921, 173149, 195551, 218072, 240693, 263343, 285989, 308563, 331033, 353350, 375494, 397447, 419210, 440795, 462224, 483532, 504758 };
#endregion

#region 農(nóng)歷相關(guān)數(shù)據(jù)
private static string ganStr = "甲乙丙丁戊己庚辛壬癸";
private static string zhiStr = "子丑寅卯辰巳午未申酉戌亥";
private static string animalStr = "鼠牛虎兔龍蛇馬羊猴雞狗豬";
private static string nStr1 = "日一二三四五六七八九";
private static string nStr2 = "初十廿卅";
private static string[] _monthString =
{
"出錯(cuò)","正月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","臘月"
};
#endregion

#region 按公歷計(jì)算得節(jié)日
private static SolarHolidayStruct[] sHolidayInfo = new SolarHolidayStruct[]{
new SolarHolidayStruct(1, 1, 1, "元旦"),
new SolarHolidayStruct(2, 2, 0, "世界濕地日"),
new SolarHolidayStruct(2, 10, 0, "國際氣象節(jié)"),
new SolarHolidayStruct(2, 14, 0, "情人節(jié)"),
new SolarHolidayStruct(3, 1, 0, "國際海豹日"),
new SolarHolidayStruct(3, 5, 0, "學(xué)雷鋒紀(jì)念日"),
new SolarHolidayStruct(3, 8, 0, "婦女節(jié)"),
new SolarHolidayStruct(3, 12, 0, "植樹節(jié) 孫中山逝世紀(jì)念日"),
new SolarHolidayStruct(3, 14, 0, "國際警察日"),
new SolarHolidayStruct(3, 15, 0, "消費(fèi)者權(quán)益日"),
new SolarHolidayStruct(3, 17, 0, "華夏國醫(yī)節(jié) 國際航海日"),
new SolarHolidayStruct(3, 21, 0, "世界森林日 消除種族歧視國際日 世界兒歌日"),
new SolarHolidayStruct(3, 22, 0, "世界水日"),
new SolarHolidayStruct(3, 24, 0, "世界防治結(jié)核病日"),
new SolarHolidayStruct(4, 1, 0, "愚人節(jié)"),
new SolarHolidayStruct(4, 7, 0, "世界衛(wèi)生日"),
new SolarHolidayStruct(4, 22, 0, "世界地球日"),
new SolarHolidayStruct(5, 1, 1, "勞動節(jié)"),
new SolarHolidayStruct(5, 2, 1, "勞動節(jié)假日"),
new SolarHolidayStruct(5, 3, 1, "勞動節(jié)假日"),
new SolarHolidayStruct(5, 4, 0, "青年節(jié)"),
new SolarHolidayStruct(5, 8, 0, "世界紅十字日"),
new SolarHolidayStruct(5, 12, 0, "國際護(hù)士節(jié)"),
new SolarHolidayStruct(5, 31, 0, "世界無煙日"),
new SolarHolidayStruct(6, 1, 0, "國際兒童節(jié)"),
new SolarHolidayStruct(6, 5, 0, "世界環(huán)境保護(hù)日"),
new SolarHolidayStruct(6, 26, 0, "國際禁毒日"),
new SolarHolidayStruct(7, 1, 0, "建黨節(jié) 香港回歸紀(jì)念 世界建筑日"),
new SolarHolidayStruct(7, 11, 0, "世界人口日"),
new SolarHolidayStruct(8, 1, 0, "建軍節(jié)"),
new SolarHolidayStruct(8, 8, 0, "華夏男子節(jié) 父親節(jié)"),
new SolarHolidayStruct(8, 15, 0, "抗日戰(zhàn)爭勝利紀(jì)念"),
new SolarHolidayStruct(9, 9, 0, "毛大大逝世紀(jì)念"),
new SolarHolidayStruct(9, 10, 0, "教師節(jié)"),
new SolarHolidayStruct(9, 18, 0, "九·一八事變紀(jì)念日"),
new SolarHolidayStruct(9, 20, 0, "國際愛牙日"),
new SolarHolidayStruct(9, 27, 0, "世界旅游日"),
new SolarHolidayStruct(9, 28, 0, "孔子誕辰"),
new SolarHolidayStruct(10, 1, 1, "國慶節(jié) 國際音樂日"),
new SolarHolidayStruct(10, 2, 1, "國慶節(jié)假日"),
new SolarHolidayStruct(10, 3, 1, "國慶節(jié)假日"),
new SolarHolidayStruct(10, 6, 0, "老人節(jié)"),
new SolarHolidayStruct(10, 24, 0, "聯(lián)合國日"),
new SolarHolidayStruct(11, 10, 0, "世界青年節(jié)"),
new SolarHolidayStruct(11, 12, 0, "孫中山誕辰紀(jì)念"),
new SolarHolidayStruct(12, 1, 0, "世界艾滋病日"),
new SolarHolidayStruct(12, 3, 0, "世界殘疾人日"),
new SolarHolidayStruct(12, 20, 0, "澳門回歸紀(jì)念"),
new SolarHolidayStruct(12, 24, 0, "平安夜"),
new SolarHolidayStruct(12, 25, 0, "圣誕節(jié)"),
new SolarHolidayStruct(12, 26, 0, "毛大大誕辰紀(jì)念")
};
#endregion

#region 按農(nóng)歷計(jì)算得節(jié)日
private static LunarHolidayStruct[] lHolidayInfo = new LunarHolidayStruct[]{
new LunarHolidayStruct(1, 1, 1, "春節(jié)"),
new LunarHolidayStruct(1, 15, 0, "元宵節(jié)"),
new LunarHolidayStruct(5, 5, 0, "端午節(jié)"),
new LunarHolidayStruct(7, 7, 0, "七夕情人節(jié)"),
new LunarHolidayStruct(7, 15, 0, "中元節(jié) 盂蘭盆節(jié)"),
new LunarHolidayStruct(8, 15, 0, "中秋節(jié)"),
new LunarHolidayStruct(9, 9, 0, "重陽節(jié)"),
new LunarHolidayStruct(12, 8, 0, "臘八節(jié)"),
new LunarHolidayStruct(12, 23, 0, "北方小年(掃房)"),
new LunarHolidayStruct(12, 24, 0, "南方小年(撣塵)"),
//new LunarHolidayStruct(12, 30, 0, "除夕") //注意除夕需要其它方法進(jìn)行計(jì)算
};
#endregion

#region 按某月第幾個(gè)星期幾
private static WeekHolidayStruct[] wHolidayInfo = new WeekHolidayStruct[]{
new WeekHolidayStruct(5, 2, 1, "母親節(jié)"),
new WeekHolidayStruct(5, 3, 1, "華夏助殘日"),
new WeekHolidayStruct(6, 3, 1, "父親節(jié)"),
new WeekHolidayStruct(9, 3, 3, "國際和平日"),
new WeekHolidayStruct(9, 4, 1, "國際聾人節(jié)"),
new WeekHolidayStruct(10, 1, 2, "國際住房日"),
new WeekHolidayStruct(10, 1, 4, "國際減輕自然災(zāi)害日"),
new WeekHolidayStruct(11, 4, 5, "感恩節(jié)")
};
#endregion

#endregion

#region 構(gòu)造函數(shù)
#region ChinaCalendar <公歷日期初始化>
/// <summary>
/// 用一個(gè)標(biāo)準(zhǔn)得公歷日期來初使化
/// </summary>
/// <param name="dt"></param>
public EcanChineseCalendar(DateTime dt)
{
int i;
int leap;
int temp;
int offset;

CheckDateLimit(dt);

_date = dt.Date;
_datetime = dt;

//農(nóng)歷日期計(jì)算部分
leap = 0;
temp = 0;

TimeSpan ts = _date - EcanChineseCalendar.MinDay;//計(jì)算兩天得基本差距
offset = ts.Days;

for (i = MinYear; i <= MaxYear; i++)
{
temp = GetChineseYearDays(i); //求當(dāng)年農(nóng)歷年天數(shù)
if (offset - temp < 1)
break;
else
{
offset = offset - temp;
}
}
_cYear = i;

leap = GetChineseLeapMonth(_cYear);//計(jì)算該年閏哪個(gè)月
//設(shè)定當(dāng)年是否有閏月
if (leap > 0)
{
_cIsLeapYear = true;
}
else
{
_cIsLeapYear = false;
}

_cIsLeapMonth = false;
for (i = 1; i <= 12; i++)
{
//閏月
if ((leap > 0) && (i == leap + 1) && (_cIsLeapMonth == false))
{
_cIsLeapMonth = true;
i = i - 1;
temp = GetChineseLeapMonthDays(_cYear); //計(jì)算閏月天數(shù)
}
else
{
_cIsLeapMonth = false;
temp = GetChineseMonthDays(_cYear, i);//計(jì)算非閏月天數(shù)
}

offset = offset - temp;
if (offset <= 0) break;
}

offset = offset + temp;
_cMonth = i;
_cDay = offset;
}
#endregion

#region ChinaCalendar <農(nóng)歷日期初始化>
/// <summary>
/// 用農(nóng)歷得日期來初使化
/// </summary>
/// <param name="cy">農(nóng)歷年</param>
/// <param name="cm">農(nóng)歷月</param>
/// <param name="cd">農(nóng)歷日</param>
/// <param name="LeapFlag">閏月標(biāo)志</param>
public EcanChineseCalendar(int cy, int cm, int cd, bool leapMonthFlag)
{
int i, leap, Temp, offset;

CheckChineseDateLimit(cy, cm, cd, leapMonthFlag);

_cYear = cy;
_cMonth = cm;
_cDay = cd;

offset = 0;

for (i = MinYear; i < cy; i++)
{
Temp = GetChineseYearDays(i); //求當(dāng)年農(nóng)歷年天數(shù)
offset = offset + Temp;
}

leap = GetChineseLeapMonth(cy);// 計(jì)算該年應(yīng)該閏哪個(gè)月
if (leap != 0)
{
this._cIsLeapYear = true;
}
else
{
this._cIsLeapYear = false;
}

if (cm != leap)
{
_cIsLeapMonth = false; //當(dāng)前日期并非閏月
}
else
{
_cIsLeapMonth = leapMonthFlag; //使用用戶輸入得是否閏月月份
}


if ((_cIsLeapYear == false) || //當(dāng)年沒有閏月
(cm < leap)) //計(jì)算月份小于閏月
{
#region ...
for (i = 1; i < cm; i++)
{
Temp = GetChineseMonthDays(cy, i);//計(jì)算非閏月天數(shù)
offset = offset + Temp;
}

//檢查日期是否大于蕞大天
if (cd > GetChineseMonthDays(cy, cm))
{
throw new newCalendarException("不合法得農(nóng)歷日期");
}
offset = offset + cd; //加上當(dāng)月得天數(shù)
#endregion
}
else //是閏年,且計(jì)算月份大于或等于閏月
{
#region ...
for (i = 1; i < cm; i++)
{
Temp = GetChineseMonthDays(cy, i); //計(jì)算非閏月天數(shù)
offset = offset + Temp;
}

if (cm > leap) //計(jì)算月大于閏月
{
Temp = GetChineseLeapMonthDays(cy); //計(jì)算閏月天數(shù)
offset = offset + Temp; //加上閏月天數(shù)

if (cd > GetChineseMonthDays(cy, cm))
{
throw new newCalendarException("不合法得農(nóng)歷日期");
}
offset = offset + cd;
}
else //計(jì)算月等于閏月
{
//如果需要計(jì)算得是閏月,則應(yīng)首先加上與閏月對應(yīng)得普通月得天數(shù)
if (this._cIsLeapMonth == true) //計(jì)算月為閏月
{
Temp = GetChineseMonthDays(cy, cm); //計(jì)算非閏月天數(shù)
offset = offset + Temp;
}

if (cd > GetChineseLeapMonthDays(cy))
{
throw new newCalendarException("不合法得農(nóng)歷日期");
}
offset = offset + cd;
}
#endregion
}


_date = MinDay.AddDays(offset);
}
#endregion
#endregion

#region 私有函數(shù)

#region GetChineseMonthDays
//傳回農(nóng)歷 y年m月得總天數(shù)
private int GetChineseMonthDays(int year, int month)
{
if (BitTest32((LunarDateArray[year - MinYear] & 0x0000FFFF), (16 - month)))
{
return 30;
}
else
{
return 29;
}
}
#endregion

#region GetChineseLeapMonth
//傳回農(nóng)歷 y年閏哪個(gè)月 1-12 , 沒閏傳回 0
private int GetChineseLeapMonth(int year)
{

return LunarDateArray[year - MinYear] & 0xF;

}
#endregion

#region GetChineseLeapMonthDays
//傳回農(nóng)歷 y年閏月得天數(shù)
private int GetChineseLeapMonthDays(int year)
{
if (GetChineseLeapMonth(year) != 0)
{
if ((LunarDateArray[year - MinYear] & 0x10000) != 0)
{
return 30;
}
else
{
return 29;
}
}
else
{
return 0;
}
}
#endregion

#region GetChineseYearDays
/// <summary>
/// 取農(nóng)歷年一年得天數(shù)
/// </summary>
/// <param name="year"></param>
/// <returns></returns>
private int GetChineseYearDays(int year)
{
int i, f, sumDay, info;

sumDay = 348; //29天 X 12個(gè)月
i = 0x8000;
info = LunarDateArray[year - MinYear] & 0x0FFFF;

//計(jì)算12個(gè)月中有多少天為30天
for (int m = 0; m < 12; m++)
{
f = info & i;
if (f != 0)
{
sumDay++;
}
i = i >> 1;
}
return sumDay + GetChineseLeapMonthDays(year);
}
#endregion

#region GetChineseHour
/// <summary>
/// 獲得當(dāng)前時(shí)間得時(shí)辰
/// </summary>
/// <param name="time"></param>
/// <returns></returns>
///
private string GetChineseHour(DateTime dt)
{

int _hour, _minute, offset, i;
int indexGan;
string ganHour, zhiHour;
string tmpGan;

//計(jì)算時(shí)辰得地支
_hour = dt.Hour; //獲得當(dāng)前時(shí)間小時(shí)
_minute = dt.Minute; //獲得當(dāng)前時(shí)間分鐘

if (_minute != 0) _hour += 1;
offset = _hour / 2;
if (offset >= 12) offset = 0;
//zhiHour = zhiStr[offset].ToString();

//計(jì)算天干
TimeSpan ts = this._date - GanZhiStartDay;
i = ts.Days % 60;

indexGan = ((i % 10 + 1) * 2 - 1) % 10 - 1; //ganStr[i % 10] 為日得天干,(n*2-1) %10得出地支對應(yīng),n從1開始
tmpGan = ganStr.Substring(indexGan) + ganStr.Substring(0, indexGan + 2);//湊齊12位
//ganHour = ganStr[((i % 10 + 1) * 2 - 1) % 10 - 1].ToString();

return tmpGan[offset].ToString() + zhiStr[offset].ToString();

}
#endregion

#region CheckDateLimit
/// <summary>
/// 檢查公歷日期是否符合要求
/// </summary>
/// <param name="dt"></param>
private void CheckDateLimit(DateTime dt)
{
if ((dt < MinDay) || (dt > MaxDay))
{
throw new newCalendarException("超出可轉(zhuǎn)換得日期");
}
}
#endregion

#region CheckChineseDateLimit
/// <summary>
/// 檢查農(nóng)歷日期是否合理
/// </summary>
/// <param name="year"></param>
/// <param name="month"></param>
/// <param name="day"></param>
/// <param name="leapMonth"></param>
private void CheckChineseDateLimit(int year, int month, int day, bool leapMonth)
{
if ((year < MinYear) || (year > MaxYear))
{
throw new newCalendarException("非法農(nóng)歷日期");
}
if ((month < 1) || (month > 12))
{
throw new newCalendarException("非法農(nóng)歷日期");
}
if ((day < 1) || (day > 30)) //華夏得月蕞多30天
{
throw new newCalendarException("非法農(nóng)歷日期");
}

int leap = GetChineseLeapMonth(year);// 計(jì)算該年應(yīng)該閏哪個(gè)月
if ((leapMonth == true) && (month != leap))
{
throw new newCalendarException("非法農(nóng)歷日期");
}


}
#endregion

#region ConvertNumToChineseNum
/// <summary>
/// 將0-9轉(zhuǎn)成漢字形式
/// </summary>
/// <param name="n"></param>
/// <returns></returns>
private string ConvertNumToChineseNum(char n)
{
if ((n < '0') || (n > '9')) return "";
switch (n)
{
case '0':
return HZNum[0].ToString();
case '1':
return HZNum[1].ToString();
case '2':
return HZNum[2].ToString();
case '3':
return HZNum[3].ToString();
case '4':
return HZNum[4].ToString();
case '5':
return HZNum[5].ToString();
case '6':
return HZNum[6].ToString();
case '7':
return HZNum[7].ToString();
case '8':
return HZNum[8].ToString();
case '9':
return HZNum[9].ToString();
default:
return "";
}
}
#endregion

#region BitTest32
/// <summary>
/// 測試某位是否為真
/// </summary>
/// <param name="num"></param>
/// <param name="bitpostion"></param>
/// <returns></returns>
private bool BitTest32(int num, int bitpostion)
{

if ((bitpostion > 31) || (bitpostion < 0))
throw new Exception("Error Param: bitpostion[0-31]:" + bitpostion.ToString());

int bit = 1 << bitpostion;

if ((num & bit) == 0)
{
return false;
}
else
{
return true;
}
}
#endregion

#region ConvertDayOfWeek
/// <summary>
/// 將星期幾轉(zhuǎn)成數(shù)字表示
/// </summary>
/// <param name="dayOfWeek"></param>
/// <returns></returns>
private int ConvertDayOfWeek(DayOfWeek dayOfWeek)
{
switch (dayOfWeek)
{
case DayOfWeek.Sunday:
return 1;
case DayOfWeek.Monday:
return 2;
case DayOfWeek.Tuesday:
return 3;
case DayOfWeek.Wednesday:
return 4;
case DayOfWeek.Thursday:
return 5;
case DayOfWeek.Friday:
return 6;
case DayOfWeek.Saturday:
return 7;
default:
return 0;
}
}
#endregion

#region CompareWeekDayHoliday
/// <summary>
/// 比較當(dāng)天是不是指定得第周幾
/// </summary>
/// <param name="date"></param>
/// <param name="month"></param>
/// <param name="week"></param>
/// <param name="day"></param>
/// <returns></returns>
private bool CompareWeekDayHoliday(DateTime date, int month, int week, int day)
{
bool ret = false;

if (date.Month == month) //月份相同
{
if (ConvertDayOfWeek(date.DayOfWeek) == day) //星期幾相同
{
DateTime firstDay = new DateTime(date.Year, date.Month, 1);//生成當(dāng)月第壹天
int i = ConvertDayOfWeek(firstDay.DayOfWeek);
int firWeekDays = 7 - ConvertDayOfWeek(firstDay.DayOfWeek) + 1; //計(jì)算第壹周剩余天數(shù)

if (i > day)
{
if ((week - 1) * 7 + day + firWeekDays == date.Day)
{
ret = true;
}
}
else
{
if (day + firWeekDays + (week - 2) * 7 == date.Day)
{
ret = true;
}
}
}
}

return ret;
}
#endregion
#endregion

#region 屬性

#region 節(jié)日
#region newCalendarHoliday
/// <summary>
/// 計(jì)算華夏農(nóng)歷節(jié)日
/// </summary>
public string newCalendarHoliday
{
get
{
string tempStr = "";
if (this._cIsLeapMonth == false) //閏月不計(jì)算節(jié)日
{
foreach (LunarHolidayStruct lh in lHolidayInfo)
{
if ((lh.Month == this._cMonth) && (lh.Day == this._cDay))
{

tempStr = lh.HolidayName;
break;

}
}

//對除夕進(jìn)行特別處理
if (this._cMonth == 12)
{
int i = GetChineseMonthDays(this._cYear, 12); //計(jì)算當(dāng)年農(nóng)歷12月得總天數(shù)
if (this._cDay == i) //如果為蕞后一天
{
tempStr = "除夕";
}
}
}
return tempStr;
}
}
#endregion

#region WeekDayHoliday
/// <summary>
/// 按某月第幾周第幾日計(jì)算得節(jié)日
/// </summary>
public string WeekDayHoliday
{
get
{
string tempStr = "";
foreach (WeekHolidayStruct wh in wHolidayInfo)
{
if (CompareWeekDayHoliday(_date, wh.Month, wh.WeekAtMonth, wh.WeekDay))
{
tempStr = wh.HolidayName;
break;
}
}
return tempStr;
}
}
#endregion

#region DateHoliday
/// <summary>
/// 按公歷日計(jì)算得節(jié)日
/// </summary>
public string DateHoliday
{
get
{
string tempStr = "";

foreach (SolarHolidayStruct sh in sHolidayInfo)
{
if ((sh.Month == _date.Month) && (sh.Day == _date.Day))
{
tempStr = sh.HolidayName;
break;
}
}
return tempStr;
}
}
#endregion
#endregion

#region 公歷日期
#region Date
/// <summary>
/// 取對應(yīng)得公歷日期
/// </summary>
public DateTime Date
{
get { return _date; }
set { _date = value; }
}
#endregion

#region WeekDay
/// <summary>
/// 取星期幾
/// </summary>
public DayOfWeek WeekDay
{
get { return _date.DayOfWeek; }
}
#endregion

#region WeekDayStr
/// <summary>
/// 周幾得字符
/// </summary>
public string WeekDayStr
{
get
{
switch (_date.DayOfWeek)
{
case DayOfWeek.Sunday:
return "星期日";
case DayOfWeek.Monday:
return "星期一";
case DayOfWeek.Tuesday:
return "星期二";
case DayOfWeek.Wednesday:
return "星期三";
case DayOfWeek.Thursday:
return "星期四";
case DayOfWeek.Friday:
return "星期五";
default:
return "星期六";
}
}
}
#endregion

#region DateString
/// <summary>
/// 公歷日期中文表示法 如一九九七年七月一日
/// </summary>
public string DateString
{
get
{
return "公元" + this._date.ToLongDateString();
}
}
#endregion

#region IsLeapYear
/// <summary>
/// 當(dāng)前是否公歷閏年
/// </summary>
public bool IsLeapYear
{
get
{
return DateTime.IsLeapYear(this._date.Year);
}
}
#endregion

#region ChineseConstellation
/// <summary>
/// 28星宿計(jì)算
/// </summary>
public string ChineseConstellation
{
get
{
int offset = 0;
int modStarDay = 0;

TimeSpan ts = this._date - ChineseConstellationReferDay;
offset = ts.Days;
modStarDay = offset % 28;
return (modStarDay >= 0 ? _chineseConstellationName[modStarDay] : _chineseConstellationName[27 + modStarDay]);
}
}
#endregion

#region ChineseHour
/// <summary>
/// 時(shí)辰
/// </summary>
public string ChineseHour
{
get
{
return GetChineseHour(_datetime);
}
}
#endregion

#endregion

#region 農(nóng)歷日期
#region IsChineseLeapMonth
/// <summary>
/// 是否閏月
/// </summary>
public bool IsChineseLeapMonth
{
get { return this._cIsLeapMonth; }
}
#endregion

#region IsChineseLeapYear
/// <summary>
/// 當(dāng)年是否有閏月
/// </summary>
public bool IsChineseLeapYear
{
get
{
return this._cIsLeapYear;
}
}
#endregion

#region ChineseDay
/// <summary>
/// 農(nóng)歷日
/// </summary>
public int ChineseDay
{
get { return this._cDay; }
}
#endregion

#region ChineseDayString
/// <summary>
/// 農(nóng)歷日中文表示
/// </summary>
public string ChineseDayString
{
get
{
switch (this._cDay)
{
case 0:
return "";
case 10:
return "初十";
case 20:
return "二十";
case 30:
return "三十";
default:
return nStr2[(int)(_cDay / 10)].ToString() + nStr1[_cDay % 10].ToString();

}
}
}
#endregion

#region ChineseMonth
/// <summary>
/// 農(nóng)歷得月份
/// </summary>
public int ChineseMonth
{
get { return this._cMonth; }
}
#endregion

#region ChineseMonthString
/// <summary>
/// 農(nóng)歷月份字符串
/// </summary>
public string ChineseMonthString
{
get
{
return _monthString[this._cMonth];
}
}
#endregion

#region ChineseYear
/// <summary>
/// 取農(nóng)歷年份
/// </summary>
public int ChineseYear
{
get { return this._cYear; }
}
#endregion

#region ChineseYearString
/// <summary>
/// 取農(nóng)歷年字符串如,一九九七年
/// </summary>
public string ChineseYearString
{
get
{
string tempStr = "";
string num = this._cYear.ToString();
for (int i = 0; i < 4; i++)
{
tempStr += ConvertNumToChineseNum(num[i]);
}
return tempStr + "年";
}
}
#endregion

#region ChineseDateString
/// <summary>
/// 取農(nóng)歷日期表示法:農(nóng)歷一九九七年正月初五
/// </summary>
public string ChineseDateString
{
get
{
if (this._cIsLeapMonth == true)
{
return "農(nóng)歷" + ChineseYearString + "閏" + ChineseMonthString + ChineseDayString;
}
else
{
return "農(nóng)歷" + ChineseYearString + ChineseMonthString + ChineseDayString;
}
}
}
#endregion

#region ChineseTwentyFourDay
/// <summary>
/// 定氣法計(jì)算二十四節(jié)氣,二十四節(jié)氣是按地球公轉(zhuǎn)來計(jì)算得,并非是陰歷計(jì)算得
/// </summary>
/// <remarks>
/// 節(jié)氣得定法有兩種。古代歷法采用得稱為"恒氣",即按時(shí)間把一年等分為24份,
/// 每一節(jié)氣平均得15天有余,所以又稱"平氣"。現(xiàn)代農(nóng)歷采用得稱為"定氣",即
/// 按地球在軌道上得位置為標(biāo)準(zhǔn),一周360°,兩節(jié)氣之間相隔15°。由于冬至?xí)r地
/// 球位于點(diǎn)附近,運(yùn)動速度較快,因而太陽在黃道上移動15°得時(shí)間不到15天。
/// 夏至前后得情況正好相反,太陽在黃道上移動較慢,一個(gè)節(jié)氣達(dá)16天之多。采用
/// 定氣時(shí)可以保證春、秋兩分必然在晝夜平分得那兩天。
/// </remarks>
public string ChineseTwentyFourDay
{
get
{
DateTime baseDateAndTime = new DateTime(1900, 1, 6, 2, 5, 0); //#1/6/1900 2:05:00 AM#
DateTime newDate;
double num;
int y;
string tempStr = "";

y = this._date.Year;

for (int i = 1; i <= 24; i++)
{
num = 525948.76 * (y - 1900) + sTermInfo[i - 1];

newDate = baseDateAndTime.AddMinutes(num);//按分鐘計(jì)算
if (newDate.DayOfYear == _date.DayOfYear)
{
tempStr = SolarTerm[i - 1];
break;
}
}
return tempStr;
}
}

//當(dāng)前日期前一個(gè)蕞近節(jié)氣
public string ChineseTwentyFourPrevDay
{
get
{
DateTime baseDateAndTime = new DateTime(1900, 1, 6, 2, 5, 0); //#1/6/1900 2:05:00 AM#
DateTime newDate;
double num;
int y;
string tempStr = "";

y = this._date.Year;

for (int i = 24; i >= 1; i--)
{
num = 525948.76 * (y - 1900) + sTermInfo[i - 1];

newDate = baseDateAndTime.AddMinutes(num);//按分鐘計(jì)算

if (newDate.DayOfYear < _date.DayOfYear)
{
tempStr = string.Format("{0}[{1}]", SolarTerm[i - 1], newDate.ToString("yyyy-MM-dd"));
break;
}
}

return tempStr;
}

}

//當(dāng)前日期后一個(gè)蕞近節(jié)氣
public string ChineseTwentyFourNextDay
{
get
{
DateTime baseDateAndTime = new DateTime(1900, 1, 6, 2, 5, 0); //#1/6/1900 2:05:00 AM#
DateTime newDate;
double num;
int y;
string tempStr = "";

y = this._date.Year;

for (int i = 1; i <= 24; i++)
{
num = 525948.76 * (y - 1900) + sTermInfo[i - 1];

newDate = baseDateAndTime.AddMinutes(num);//按分鐘計(jì)算

if (newDate.DayOfYear > _date.DayOfYear)
{
tempStr = string.Format("{0}[{1}]", SolarTerm[i - 1], newDate.ToString("yyyy-MM-dd"));
break;
}
}
return tempStr;
}

}
#endregion
#endregion

#region 星座
#region Constellation
/// <summary>
/// 計(jì)算指定日期得星座序號
/// </summary>
/// <returns></returns>
public string Constellation
{
get
{
int index = 0;
int y, m, d;
y = _date.Year;
m = _date.Month;
d = _date.Day;
y = m * 100 + d;

if (((y >= 321) && (y <= 419))) { index = 0; }
else if ((y >= 420) && (y <= 520)) { index = 1; }
else if ((y >= 521) && (y <= 620)) { index = 2; }
else if ((y >= 621) && (y <= 722)) { index = 3; }
else if ((y >= 723) && (y <= 822)) { index = 4; }
else if ((y >= 823) && (y <= 922)) { index = 5; }
else if ((y >= 923) && (y <= 1022)) { index = 6; }
else if ((y >= 1023) && (y <= 1121)) { index = 7; }
else if ((y >= 1122) && (y <= 1221)) { index = 8; }
else if ((y >= 1222) || (y <= 119)) { index = 9; }
else if ((y >= 120) && (y <= 218)) { index = 10; }
else if ((y >= 219) && (y <= 320)) { index = 11; }
else { index = 0; }

return _constellationName[index];
}
}
#endregion
#endregion

#region 屬相
#region Animal
/// <summary>
/// 計(jì)算屬相得索引,注意雖然屬相是以農(nóng)歷年來區(qū)別得,但是目前在實(shí)際使用中是按公歷來計(jì)算得
/// 鼠年為1,其它類推
/// </summary>
public int Animal
{
get
{
int offset = _date.Year - AnimalStartYear;
return (offset % 12) + 1;
}
}
#endregion

#region AnimalString
/// <summary>
/// 取屬相字符串
/// </summary>
public string AnimalString
{
get
{
int offset = _date.Year - AnimalStartYear; //陽歷計(jì)算
//int offset = this._cYear - AnimalStartYear; 農(nóng)歷計(jì)算
return animalStr[offset % 12].ToString();
}
}
#endregion
#endregion

#region 天干地支
#region GanZhiYearString
/// <summary>
/// 取農(nóng)歷年得干支表示法如 乙丑年
/// </summary>
public string GanZhiYearString
{
get
{
string tempStr;
int i = (this._cYear - GanZhiStartYear) % 60; //計(jì)算干支
tempStr = ganStr[i % 10].ToString() + zhiStr[i % 12].ToString() + "年";
return tempStr;
}
}
#endregion

#region GanZhiMonthString
/// <summary>
/// 取干支得月表示字符串,注意農(nóng)歷得閏月不記干支
/// </summary>
public string GanZhiMonthString
{
get
{
//每個(gè)月得地支總是固定得,而且總是從寅月開始
int zhiIndex;
string zhi;
if (this._cMonth > 10)
{
zhiIndex = this._cMonth - 10;
}
else
{
zhiIndex = this._cMonth + 2;
}
zhi = zhiStr[zhiIndex - 1].ToString();

//根據(jù)當(dāng)年得干支年得干來計(jì)算月干得第壹個(gè)
int ganIndex = 1;
string gan;
int i = (this._cYear - GanZhiStartYear) % 60; //計(jì)算干支
switch (i % 10)
{
#region ...
case 0: //甲
ganIndex = 3;
break;
case 1: //乙
ganIndex = 5;
break;
case 2: //丙
ganIndex = 7;
break;
case 3: //丁
ganIndex = 9;
break;
case 4: //戊
ganIndex = 1;
break;
case 5: //己
ganIndex = 3;
break;
case 6: //庚
ganIndex = 5;
break;
case 7: //辛
ganIndex = 7;
break;
case 8: //壬
ganIndex = 9;
break;
case 9: //癸
ganIndex = 1;
break;
#endregion
}
gan = ganStr[(ganIndex + this._cMonth - 2) % 10].ToString();

return gan + zhi + "月";
}
}
#endregion

#region GanZhiDayString
/// <summary>
/// 取干支日表示法
/// </summary>
public string GanZhiDayString
{
get
{
int i, offset;
TimeSpan ts = this._date - GanZhiStartDay;
offset = ts.Days;
i = offset % 60;
return ganStr[i % 10].ToString() + zhiStr[i % 12].ToString() + "日";
}
}
#endregion

#region GanZhiDateString
/// <summary>
/// 取當(dāng)前日期得干支表示法如 甲子年乙丑月丙庚日
/// </summary>
public string GanZhiDateString
{
get
{
return GanZhiYearString + GanZhiMonthString + GanZhiDayString;
}
}
#endregion
#endregion
#endregion

#region 方法
#region NextDay
/// <summary>
/// 取下一天
/// </summary>
/// <returns></returns>
public EcanChineseCalendar NextDay()
{
DateTime nextDay = _date.AddDays(1);
return new EcanChineseCalendar(nextDay);
}
#endregion

#region PervDay
/// <summary>
/// 取前一天
/// </summary>
/// <returns></returns>
public EcanChineseCalendar PervDay()
{
DateTime pervDay = _date.AddDays(-1);
return new EcanChineseCalendar(pervDay);
}
#endregion
#endregion
}
}

 
(文/付宗潔)
免責(zé)聲明
本文僅代表作發(fā)布者:付宗潔個(gè)人觀點(diǎn),本站未對其內(nèi)容進(jìn)行核實(shí),請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問題,請及時(shí)聯(lián)系我們刪除處理郵件:weilaitui@qq.com。
 

Copyright ? 2016 - 2025 - 企資網(wǎng) 48903.COM All Rights Reserved 粵公網(wǎng)安備 44030702000589號

粵ICP備16078936號

微信

關(guān)注
微信

微信二維碼

WAP二維碼

客服

聯(lián)系
客服

聯(lián)系客服:

在線QQ: 303377504

客服電話: 020-82301567

E_mail郵箱: weilaitui@qq.com

微信公眾號: weishitui

客服001 客服002 客服003

工作時(shí)間:

周一至周五: 09:00 - 18:00

反饋

用戶
反饋

主站蜘蛛池模板: 超碰人人91| 欧美视频日韩视频 | 日本三级韩国三级三级a级中文 | 欧美视频在线观看一区 | 麻豆丰满少妇chinese | 两个人看的www在线观看 | 天天做天天爱天天综合网2021 | 亚洲欧美在线播放 | 91丝袜呻吟高潮美腿白嫩在线观看 | 午夜国产一级片 | 欧美三级三级三级爽爽爽 | 肉欲性毛片交国产 | 欧美成人乱码一区二区三区 | 小sao货水好多真紧h国产 | 婷婷综合激情 | 毛茸茸日本熟妇高潮 | 男女三级视频 | 国产精品原创av片国产日韩 | 亚洲精品欧美二区三区中文字幕 | 国产午夜精品一区二区三区四区 | 亚洲乱码日产精品bd | 影音先锋婷婷 | 体内精69xxxtv| 日韩国产欧美精品 | 久久一本人碰碰人碰 | 一本到在线 | a级港片免费完整在线观看 a级高清毛片 | 97精品在线观看 | 麻豆91精品91久久久的内涵 | 第色| 国产一区二区在线观看视频 | 国产精品v日韩精品v在线观看 | 亚洲精品白浆高清久久久久久 | 亚洲射色| 成人手机在线免费视频 | 麻豆性视频 | 国产又色又爽无遮挡免费 | 不卡中文字幕av | 日本一区二区三区四区在线观看 | 欧美大尺度胸床戏视频 | 不卡av中文字幕 | 天堂中文在线观看视频 | 无码h黄肉动漫在线观看 | 国产不卡在线 | 色站综合 | 国产精品无码一区二区在线 | 野外做受又硬又粗又大视频 | 狠狠狠色 | 中文字幕有码无码人妻av蜜桃 | 亚洲国产av无码精品 | 国产乱国产乱300精品 | 极品少妇露脸一区二区 | 奇米影视奇奇米色狠狠色777 | 亚洲天堂影院 | 男人天堂成人 | 日韩精品在线免费观看视频 | 超级av在线 | 国产欧美日韩视频 | av网站久久| 成人做爰100部片免费下载 | 69国产视频 | 久精品视频| 国内精品伊人久久久久网站 | 不卡免费视频 | 亚洲第一香蕉网 | 2021久久精品国产99国产精品 | 伊人久久大| 少妇一级二级三级 | 久久天天躁狠狠躁夜夜网站 | 欧美两根一起进3p做受视频 | 欧美专区一区 | 国产精选免费进入 | 大奶子在线观看 | 人妻av乱片av出轨 | 香港av在线 | 人妻va精品va欧美va | 成人黄色在线观看 | 久久综合久久美利坚合众国 | 狂野欧美激情性xxxx | 精品无码日韩国产不卡av | 亚洲国产一区二区三区日本久久久 | 亚洲欧美在线视频观看 | 激情五月中文字幕 | 日韩中文字幕免费看 | 波多野结衣一二三区 | 日本无遮挡吸乳呻吟视频 | 中文字幕被公侵犯的漂亮人妻 | 亚洲第一二三四区 | 日韩免费黄色 | 国人精品视频在线观看 | 少妇人妻系列无码专区视频 | 成人免费精品 | 手机成人在线视频 | 精品久久久久久无码中文野结衣 | 亚洲深夜福利视频 | 日本做床爱全过程激烈视频 | 中文字幕人乱码中文 | a在线观看免费网站大全 | 精品欧美成人高清在线观看 | 精品国产一区二区三区久久久蜜月 | 老司机成人网 | 国产精品无人区一区二区三区 | 中文字幕免费高 | 亚洲精品乱码久久久久久写真 | 欧美精品v国产精品v日韩精品 | 成人美女黄网站色大色费全看在线观看 | 久久久久久久久久久久久久久 | 国产一区黄色 | 九九九九九九九九九 | 高潮的毛片激情久久精品 | 四川农村妇女野外毛片bd | 男女爱爱好爽视频免费看 | 亚洲欧美一区二区精品久久久 | 日韩成人在线免费观看 | 五月天在线播放 | 日韩欧美国产中文字幕 | 国产日韩久久久久69影院 | 欧美自偷自拍 | 日日噜噜噜夜夜爽爽狠狠同性男 | 色婷婷国产精品综合在线观看 | 激情六月婷 | 国产精品久久久久久吹潮 | 丁香五月网久久综合 | 色狠久| 国产男女猛烈无遮挡免费视频 | 国产真实乱对白精彩久久老熟妇女 | 亚洲成人av影片 | 国产精选第一页 | 羞羞视频在线观看免费 | 日本国产忘忧草一区在线 | 国产精品第一国产精品 | 亚洲精品久久久久久国 | 国产新婚夫妇白天做个爱 | 激情综合五月婷婷 | 99热久久免费频精品18 | 色香色香欲天天天影视综合网 | 国产极品美女高潮无套小趴菜 | 在线视频毛片 | 精品久久久久久国产 | 亚洲精品中文字幕制 | 视频在线一区二区三区 | 亚洲精品四区 | 久久精品久久久久久久久久久久久 | 欧美人与禽zozzozzo | 国产色视频网站 | 狠狠97人人婷婷五月 | jizz久久 | 国产高清在线一区 | 成人欧美一区二区三区动漫 | 欧美在线视频二区 | 国产午夜不卡 | 欧美丰满白嫩bbw激情 | 天躁夜夜躁狼狠躁 | 中文字幕无码热在线视频 | 亚洲一级一区 | aⅴ在线视频男人的天堂 | 国产精品免费久久久久影院 | 2019高清中文字幕在线免费看 | 亚洲13p| 国产欧美视频在线 | 亚洲一区二区三区在线播放 | 日韩精品中文字幕久久臀 | 一级全黄少妇免费录像片 | 国产精品片 | 蜜臀久久99静品久久久久久 | 国产寡妇一级农村野外战 | 久久中文精品视频 | 欧美经典一区 | 国产成+人欧美+综合在线观看 | 国产精品久久久久久久久久妞妞 | 亚洲国产精品肉丝袜久久 | 久久久综合婷婷精品国产一区影院 | 亚洲精品玖玖玖av在线看 | 国产精品国产三级国产专播精品人 | 国产91蝌蚪 | 性色av网址 | 国产精品久久久久久久久久不蜜月 | 国产模特av私拍大尺度 | 国产精品国产三级国产普通话99 | 男人晚上看的网址 | 狠狠躁夜夜躁人人躁婷婷91 | 欧美人与动性xxxxx杂 | 国产成人资源 | 狼人香蕉| 色播视频在线播放 | 顶级嫩模啪啪呻吟不断好爽小说 | 午夜精品久久久内射近拍高清 | 国产卡一卡二在线 | 中文国产日韩精品av片 | 超碰人人草人人干 | 在线精品亚洲一区二区佐佐木明希 | 大胸奶汁乳流奶水出来h | 久久在线免费视频 | 97人人看 | 日韩美女亚洲99久久二区 | 久久精品女人天堂av免费观看 | 哈利波特3在线观看免费版英文版 | 米奇777超碰欧美日韩亚洲 | 天堂在线中文8 | 中文字幕在线亚洲日韩6页 av无码精品一区二区三区 | 99精品国产热久久91蜜凸 | av在线亚洲男人的天堂 | 超碰人人99| 亚洲加勒比无码一区二区 | 91中文国产| 国产一级影院 | 亚洲精品91天天久久人人 | 欧美两根一起进3p做受视频 | 欧美视频你懂的 | 免费无码又爽又高潮视频 | 国产成人综合久久 | 久久久精品网站 | 亚洲+小说+欧美+激情+另类 | 成人免费在线视频 | 成人国产精品久久久春色 | 色狠狠久久av大岛优香 | 黑人玩弄出轨人妻松雪 | 亚洲精品一区二区三区蜜桃久 | 99爱精品视频在线观看免费 | 欧美特黄一级大片 | 国产成人三级 | 又黄又爽又无遮挡免费的网站 | 久久久www成人免费精品张筱雨 | 色婷婷蜜桃 | 欧美人与动性行为视频 | 超碰在线国产97 | 欧美人做人爱a全程免费 | 国产精品熟妇视频国产偷人 | 香蕉国产片一级一级一级一级 | 亚洲精品国产一区二区在线观看 | 国产一级免费大片 | 18视频在线观看男男 | 色先锋资源久久综合5566 | 黄色激情视频在线观看 | 国产免费小视频 | 91亚洲精华国产精华液 | 久久精品久久久久久久 | 日韩免费二区 | 三级毛片在线免费观看 | 国产超碰在线 | 青青草黄色 | 精品欧美乱码久久久久久 | 六月色婷婷 | 色欲麻豆国产福利精品 | 婷婷嫩草国产精品一区二区三区 | 人人九九精 | 中文字幕在线日亚州9 | 国产香蕉网 | 老司机午夜福利视频 | 97超碰中文 | 春色影视| 69xxx免费视频 | videosg最新另类大全 | 日本在线免费视频 | 丰满岳乱妇在线观看中字无码 | 成人三级做爰av | 伊人久久综合视频 | 久久草草亚洲蜜桃臀 | 亚洲狠| 精品人体无码一区二区三区 | 久久九九兔免费精品6 | 污污的视频在线免费观看 | 激性欧美激情在线 | 农村末发育av片四区五区 | 亚洲精品www. | 极品女神无套呻吟啪啪 | 国产一级片av大片 | 久久人人爽人人爽人人片av免费 | 免费的黄色影片 | va婷婷在线免费观看 | 亚洲国产一区二区三区在线观看 | 成人免费视频毛片 | 高h纯肉无码视频在线观看 亚洲国产成人av毛片大全 | 老女人老91妇女老热女 | 强睡邻居人妻中文字幕 | 成人做爰69片免网站 | 久久久久99精品成人片 | 看污网站| 熟女少妇精品一区二区 | 二区三区偷拍浴室洗澡视频 | www国产精品 | 国产亚洲精品久久久久四川人 | 欧美放荡性医生videos | 久草色香蕉 | 8av国产精品爽爽ⅴa在线观看 | 欧美黄色一级片视频 | av男女 | 成人免费播放视频 | 免费a级毛片在线播放 | 天天色天 | 欧亚毛片 | 精品国产午夜福利在线观看 | 免费观看日韩av | 天堂va在线观看 | 免费看毛片基地 | 亚色91| 精品欧美小视频在线观看 | 亚洲自拍三区 | 久久久久久久女国产乱让韩 | 国产日韩一级 | 精品少妇一区二区三区日产乱码 | 国产网红主播精品一区 | 色综合久久88色综合天天 | 亚洲狠狠丁香婷婷综合久久久 | 依依成人精品视频在线观看 | 91色区| avtt国产| 一本大道综合伊人精品热热 | 一本色道久久综合狠狠躁邻居 | 国产女人高潮大叫a毛片 | 国产影片中文字幕 | 久久久久99精品成人片试看 | 国产传媒视频在线 | 国产实拍会所女技师在线观看 | 欧美视频网站www色 精品无码久久久久久久动漫 | 一本色道久久综合狠狠躁 | 国产乱淫片视频 | 91日韩精品久久久久身材苗条 | 免费av网页 | 亚洲永久精品ww.7491进入 | 欧美三级一区二区三区 | 国产香蕉久久 | videosgratis极品另类灌满高清资源 | 亚洲日韩激情无码一区 | 国产精品视频一区二区三区, | 18禁超污无遮挡无码免费游戏 | 久久国产精品久久喷水 | 麻豆人人妻人人妻人人片av | 成人欧美一区二区三区视频 | 久久国产36精品色熟妇 | 免费在线一级片 | 欧美亚洲一区二区三区 | 催眠调教艳妇成肉便小说 | 中文字幕无码免费久久99 | 四川丰满少妇被弄到高潮 | 日本黄色短片 | 性一交一黄一片 | 国产伦子系列沙发午睡 | 国产亚洲精品久久久网站好莱 | 欧美日本激情 | 丰满大肥婆肥奶大屁股 | 亚洲一区二区免费看 | av永久免费网站 | 国产sm在线 | 性视频免费的视频大全2015年 | 精品久久久久久久久亚洲 | 日韩欧美国产激情 | 国产精品字幕 | 麻豆亚洲一区 | 91区人人爽人人都喜欢人人都有 | 性一交一乱一交一精一品 | 欧洲中文字幕日韩精品成人 | 日韩在线激情视频 | 一本大道久久久久精品嫩草 | 欧美亚洲国产精品久久蜜芽直播 | 欧美精品色视频 | 欧美日韩在大午夜爽爽影院 | 成人做爰www看视频软件 | 高h纯肉无码视频在线观看 亚洲国产成人av毛片大全 | 欧美韩一区二区三区 | 香蕉久久久久久久av网站 | 久久久性 | 日本一区免费视频 | 破了亲妺妺的处免费视频国产 | 精产国品一二三产区区别在线观看 | 中文幕无线码中文字蜜桃 | 一区二区播放 | 亚洲午夜久久久精品一区二区三区 | 国产高潮又爽又刺激的视频免费 | 粉嫩av一区二区老牛影视 | 国产在线久 | 老司机亚洲精品影院 | 在线观看三级网站 | 亚洲爆乳精品无码一区二区 | 免费成人欧美 | 911亚洲精品 | 亚洲国产日韩a在线播放性色 | 亚洲精品国产综合 | 国产精品性色 | 曰本在线 | 国产午夜亚洲精品理论片色戒 | 色噜噜狠狠一区二区三区狼国成人 | 免费国产黄网站在线观看视频 | 毛茸茸成熟亚洲人 | 久久久久久一区国产精品 | 亚洲的天堂av | 欧美成人aaa片一区国产精品 | jizz性欧美6| 少妇挑战黑人3p | 麻豆免费观看视频 | 日本污ww视频网站 | 色屁屁www影院免费观看 | 特黄特色网站 | 久久99国产精一区二区三区 | 国产欧美日韩另类 | 中国女人内谢69xxxx | 国产性―交―乱―色―情人 | 亚洲一区二区三区日本 | 九九热精品视频 | 久激情内射婷内射蜜桃 | 99re6在线视频精品免费下载 | 91精品999 | 求av网站| 日本免费一区二区三区最新vr | 午夜亚洲 | 性少妇裸体野外性xxxhd | 狠狠色噜噜狠狠狠 | 国产精品丝袜一区二区 | 免费观看成人羞羞视频网站观看 | 噜噜噜视频在线观看 | 国产精品av一区二区 | 中文字幕观看视频 | 国产人妻鲁鲁一区二区 | 538prom精品视频线放 | 国产黄a三级三级三级 | 亚洲精品一区二区另类图片 | 久久久国产精华液999999 | 伊人久久婷婷色综合98网 | 91精品久久久久久久久 | 国产午夜成人av在线播放 | 四虎永久在线精品无码视频 | 中国性偷拍xxxⅹ | 免费成人av网址 | 欧美性天天 | 国产免费一区二区三区免费视频 | 国产精品久久久久桃色tv | 中文字幕欧美久久日高清 | 男女啪啪免费视频网站 | 婷婷色国产偷v国产偷v小说 | 一级成人免费视频 | 无码人妻少妇久久中文字幕 | 日韩不卡在线 | 制服一区 | 天天弄天天模 | 欧美顶级毛片在线播放 | 亚洲精品久久久蜜夜影视 | 免费人成视频x8x8 | 女同亚洲精品一区二区三 | 国产精品乱码人人做人人爱 | 久久人妖 | 欧美性猛交xxxx乱大交极品 | 成人黄色av网站 | 亚洲综合无码一区二区三区 | 国产ts人妖系列张思妮在线观看 | 国产成人亚洲精品 | 能看av的网址 | 色女生影院 | 一二三四视频社区在线 | 亚洲综合精品香蕉久久网 | av在线亚洲欧洲日产一区二区 | 国产精品无码午夜福利 | 少妇精69xxxxxx黑人 | 最新亚洲人成网站在线观看 | 中文字幕在线播放第一页 | 青青青国产免费线在 | 波多野结衣50连登视频 | 亚洲www永久成人夜色 | 伊人青青久 | 婷婷综合少妇啪啪喷水动态小说 | 国产老妇伦国产熟女老妇视频 | 少妇av网| 成人无高清96免费 | 无码精品a∨在线观看中文 亚洲熟妇自偷自拍另欧美 无码少妇a片一区二区三区 | 在线免费观看日韩 | 国产丰满精品伦一区二区三级视频 | 三级成人网| 国产一区二区三区四区五区密私 | 青青草五月天 | 7799精品视频 | 免费的av | 美女扒开屁股让男人桶 | 国产精品涩涩 | 麻豆蜜桃av蜜臀av色欲av | 天天爱综合 | 国产激情久久久 | 国产猛男猛女52精品视频 | 中文字幕高清在线 | 日本福利在线观看 | 色99999| 性按摩玩人妻hd中文字幕 | 无套内射在线无码播放 | 亚洲人成网站18禁止人 | 久久久久久久久久网站 | 欧美在线aa | youjizzcom欧美| 凹凸日日摸日日碰夜夜爽1 凹凸日日摸天天碰免费视频 | 操极品少妇 | 青青青免费视频在线 | 国外精品jvid在线观看 | 欧美69久成人做爰视频 | 好男人日本社区www 噜噜色综合噜噜色噜噜色 国产精品熟妇一区二区三区四区 | 嫩草一线产区和二线产区 | 综合色小说 | 亚洲xxx视频 | 国产又爽又黄又刺激的视频 | 亚洲人黄色片 | 成码无人av片在线观看网站 | 99国产午夜精品一区二区天美 | 中文字幕在线观看免费视频 | 免费a视频在线观看 | a天堂av| 爆乳一区二区三区无码 | 亚洲av禁18成人毛片一级在线 | 亚洲国产精品久久一线不卡 | 精品少妇一区二区三区日产乱码 | 精品蜜桃av| 最新国产小视频 | 欧美激情aaa | 国产伦久视频免费观看 视频 | www.麻豆av.com| 永久免费的av在线电影网无码 | 欧美高清激情brazzers | 大奶毛片 | 日本欧美在线观看视频 | 91久久捆绑调教美女 | 亚洲视频黄色 | 国产精品久久久久久久久久综合 | 男女爽爽无遮挡午夜视频 | 中文字幕123 | 性高湖久久久久久久久aaaaa | 天天看片天天射 | 日韩视频一区 | 国产精品人八做人人女人a级刘 | 九九热在线精品 | 色青网| 人妖ts福利视频一二三区 | 麻豆精品国产精华精华液好用吗 | 久久久久久99精品久久久 | 免费国产又色又爽又黄的网站 | 成年午夜性影院 | 欧洲美女黑人粗性暴交视频 | 久久日韩国产精品免费 | 成人区人妻精品一区二区三区 | 色噜噜狠狠狠综合曰曰曰 | 亚洲欧美日韩综合一区 | 国产精品一区二区视频 | 中国另类性xxxhd100% | 国产精品美女久久久网av | 天天干,夜夜操 | 欧美日韩在线视频一区 | 久久15p| 久久国产午夜精品理论片推荐 | 久久精品视频在线看99 | 国产精品爽爽久久久久久竹菊 | 爱情岛亚洲品质自拍极速福利网站 | 亚洲精品ww | 麻豆精品自拍 | 欧美激情性做爰免费视频 | 亚洲精品一线二线三线 | 欧美人与禽猛交狂配 | 日韩精品视频在线播放 | 天天干狠狠操 | 国产性―交―乱―色―情人 | 四虎国产精品永久在线 | 国产亚洲欧美日韩精品一区二区三区 | 对白脏话肉麻粗话av | 国产成人久久精品流白浆 | 国产欧美精品日韩区二区麻豆天美 | 国产午夜性春猛交ⅹxxx | 国产毛片久久久久久国产毛片 | 男男羞羞视频网站国产 | 久久疯狂做爰流白浆xx | 99无码熟妇丰满人妻啪啪 | 少妇哺乳期在线喷奶 | 国产肥白大熟妇bbbb视频 | 日韩免费黄色片 | 4hu最新网址 | 91久久久久久波多野高潮 | 久久久无码人妻精品一区 | 亚洲奶水xxxx哺乳期tv | 国产日韩欧美一区二区东京热 | 天天插天天爽 | 国产精品亚州 | pt美日韩欧pt网| 色婷婷综合久久久久中文 | 成人久久精品 | 无码人妻一区二区三区线 | 成人免费看吃奶视频网站 | 噼里啪啦动漫高清在线观看 | 中文字幕一二三四区 | 天堂一区二区mv在线观看 | 狠狠色噜噜狠狠狠狠色综合久 | 国产做爰xxxⅹ高潮 国产做爰xxxⅹ高潮69 | 国产性猛交粗暴力xxxx | 久久人人人 | 国内精品久久久久影视老司机 | 人妻熟女一二三区夜夜爱 | 国产亚洲精品久久久久蜜臀 | 秋霞网一区 | 亚洲国产成人精品无码区在线观看 | 琪琪午夜伦理 | 欧美精品不卡 | 久久精品视频国产 | 国产高清精品在线观看 | 亚洲欧美日韩愉拍自拍 | 狠狠爱五月婷婷 | 久久久无码精品国产一区 | 日韩一区二区在线看 | 亚洲一级特黄 | 国产精品区一区二 | 久久av无码精品人妻系列试探 | 成年人视频在线看 | 中文字幕亚洲一区 | 成年美女黄网站色大片免费看 | 香蕉视频成人在线 | 亚洲精品久久久久久久久久久久久久 | 爱爱免费视频网址 | 国产一区二区三区在线视频 | 免费看国产黄色片 | 91久久一区二区 | 国产无套粉嫩白浆内谢在线 | 一区二区精品视频在线观看 | 免费成人黄 | 国产成网站18禁止久久影院 | 日本亚洲黄色 |