精品久久久久久久久中文字幕_成人在线免费观看视视频_成人久久精品视频_热99精品里视频精品_日韩国产欧美精品在线_色多多国产成人永久免费网站_国产一区二区三区18_日韩美女免费观看_亚洲va久久久噜噜噜_亚洲精品一区二区在线_亚洲福利视频在线_中文字幕亚洲情99在线_91精品久久久久久久久久久久久_欧美日韩成人在线观看_日本精品视频在线播放_97视频在线观看播放

二維碼
企資網(wǎng)

掃一掃關(guān)注

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

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

放大字體  縮小字體 發(fā)布日期:2022-01-18 05:57:15    作者:付宗潔    瀏覽次數(shù):148
導(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("時辰:" + c.ChineseHour + "\r\n");//時辰
dayInfo.Append("屬相:" + c.AnimalString + "\r\n");//屬相
dayInfo.Append("節(jié)氣:" + c.ChineseTwentyFourDay + "\r\n");//節(jié)氣
dayInfo.Append("前一個節(jié)氣:" + c.ChineseTwentyFourPrevDay + "\r\n");//前一個節(jié)氣
dayInfo.Append("下一個節(jié)氣:" + c.ChineseTwentyFourNextDay + "\r\n");//下一個節(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個月,其中第16位表示第壹月,如果該月為30天則為1,29天為0
/// 第4位-第1位(共4位)表示閏月是哪個月,如果當(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 =
{
"出錯","正月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","臘月"
};
#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 按某月第幾個星期幾
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>
/// 用一個標(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ì)算該年閏哪個月
//設(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)該閏哪個月
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年閏哪個月 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個月
i = 0x8000;
info = LunarDateArray[year - MinYear] & 0x0FFFF;

//計(jì)算12個月中有多少天為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)前時間得時辰
/// </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ì)算時辰得地支
_hour = dt.Hour; //獲得當(dāng)前時間小時
_minute = dt.Minute; //獲得當(dāng)前時間分鐘

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)該閏哪個月
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>
/// 時辰
/// </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é)氣得定法有兩種。古代歷法采用得稱為"恒氣",即按時間把一年等分為24份,
/// 每一節(jié)氣平均得15天有余,所以又稱"平氣"。現(xiàn)代農(nóng)歷采用得稱為"定氣",即
/// 按地球在軌道上得位置為標(biāo)準(zhǔn),一周360°,兩節(jié)氣之間相隔15°。由于冬至?xí)r地
/// 球位于點(diǎn)附近,運(yùn)動速度較快,因而太陽在黃道上移動15°得時間不到15天。
/// 夏至前后得情況正好相反,太陽在黃道上移動較慢,一個節(jié)氣達(dá)16天之多。采用
/// 定氣時可以保證春、秋兩分必然在晝夜平分得那兩天。
/// </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)前日期前一個蕞近節(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)前日期后一個蕞近節(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
{
//每個月得地支總是固定得,而且總是從寅月開始
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ì)算月干得第壹個
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ā)布者:付宗潔個人觀點(diǎn),本站未對其內(nèi)容進(jìn)行核實(shí),請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問題,請及時聯(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

工作時間:

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

反饋

用戶
反饋

久久aaaa片一区二区| 97精品久久久中文字幕免费| 久久精品欧美一区二区| 337p日本欧洲亚洲大胆精品| 亚洲调教欧美在线| 一级片在线免费观看视频| 亚洲免费影视第一页| 欧美日韩大片| 中文字幕av一区二区| a级片在线免费| 精品国产av无码一区二区三区| 欧美日韩亚洲综合一区二区三区| 国产高清视频网站| 中文字幕在线看视频国产欧美| 日本久久综合网| 色爱综合av| 欧美成人黄色| 中文字幕av一区二区三区佐山爱| 精品亚洲男同gayvideo网站| 亚洲a∨无码无在线观看| 来个黄色网址| 秋霞毛片久久久久久久久| 国产精品久久午夜夜伦鲁鲁| 日韩伦理福利| 色婷婷综合久久久中文一区二区| 国产精品理论片在线观看| 中国china体内裑精亚洲片| 久久99亚洲网美利坚合众国| eeuss影院www在线观看手机| 蜜桃视频成人| 成人av在线亚洲| 国产精品亚洲专一区二区三区| 亚洲熟妇无码久久精品| 免费永久视频| 丰满人妻中伦妇伦精品app| 国产欧美久久久精品免费| www天堂网| 136fldh精品导航福利| 911福利视频| 国语自产精品视频在线看8查询8| 欧美jizzhd精品欧美巨大免费| 国产精品偷伦免费视频观看的| 亚洲美女视频在线观看| 日本在线视频一区| 天堂中文av在线| 国产中文字幕av| 精品国产国产综合精品| 最新av在线免费观看| 日韩av二区| 免费在线观看日韩av| 亚洲天堂免费| 日韩免费av在线| 91久久中文| 亚洲人成在线观看网站高清| 亚洲永久精品国产| 成人黄色午夜影院| 亚洲欧美日韩中文字幕在线观看| 精品国产三级电影在线观看| 老鸭窝亚洲一区二区三区| 成人日韩在线| 亚洲精品电影在线| 国产精品入口福利| 91在线码无精品| 国产激情一区二区三区| 永久域名在线精品| 捆绑调教美女网站视频一区| 欧美1区2区视频| 亚洲精品一区国产| 91极品在线| 欧美综合在线观看视频| 国外av在线| 国产区一区二区三区| 精品国产va久久久久久久| 国产精品久久久午夜夜伦鲁鲁| 日韩欧美国产网站| 久草在线资源视频在线观看| se在线电影| 午夜国产精品视频免费体验区| 国产成人久久精品一区二区三区| 777777国产7777777| 国产一级成人av| 国产日韩综合av| 日韩伦理一区二区三区av在线| 欧美精品videos性欧美| 欧美一区二区三| 亚洲欧美国产一本综合首页| 国产日韩专区在线| 蜜乳av综合| 人人干人人干人人| 欧美一级艳片视频免费观看| 亚洲视频狠狠干| 精品国产乱码91久久久久久网站| 亚洲视频在线观看三级| 日韩欧美一级片| 国产精品天干天干在观线| 99热这里有精品| 国产在线一区二区三区| 国产精品久久久久久久午夜片| 国产精品视频一二| 在线观看免费高清视频97| 成人手机在线| 欧美色123| 欧美图片一区二区三区| 成人影院在线观看| gai在线观看免费高清| 久久99久久99精品免费看小说| 亚欧洲精品在线视频免费观看| 欧美老少配视频| 亚洲二区av| 欧美放荡的少妇| 中文字幕资源网在线观看免费| 色偷偷在线观看| 激情小说 在线视频| 国产精品自产拍高潮在线观看| 亚洲国产伊人| 成人欧美视频在线| 91吃瓜网在线观看| 91精品一区二区三区蜜桃| 国产激情自拍| 日本欧美色图| 国产乱子伦精品视频| 精品国产三级| 影音先锋日韩av| 久久精品国产亚洲blacked| 91在线你懂得| 国产人妻互换一区二区| 一区二区免费视频| 国产一区二区三区小说| 亚洲 小说区 图片区| 久久综合色天天久久综合图片| 欧美videosex性欧美黑吊| 欧美在线短视频| 欧美成人综合网站| free亚洲| 91久久高清国语自产拍| 国产精品99久久久久久董美香| 久久久成人精品视频| 日韩成人激情| 中文字幕无码精品亚洲资源网久久| 四虎www成人影院观看| 另类综合日韩欧美亚洲| 亚州av乱码久久精品蜜桃| 欧美精品xxxxx| 国产精品亚洲аv天堂网| 亚洲一区二区网站| 国产97色在线| 在线观看一区二区三区三州| 亚州精品一二三区| 97成人精品视频在线观看| 婷婷综合激情网| 亚洲成人综合网站| 亚洲综合免费观看高清完整版| 国产成人夜间影院在线观看| 欧美色图亚洲| 日韩在线视频网站| 亚洲大胆人体在线| aaaa一级片| 成人同人动漫免费观看| 欧美第一页草草影院浮力| 91手机在线观看| 91免费视频观看| 午夜免费看视频| 日本网站在线免费观看| 懂色av蜜臀av粉嫩av分享吧| 欧美成人手机在线视频| 亚洲精品欧美在线| 精品国产18久久久久久洗澡| 成人亚洲综合天堂| 国产自产v一区二区三区c| 在线天堂资源www在线污| 久久精品午夜一区二区福利| 奇米影视第四狠狠777| 国产成人免费观看网站| 国产精品一区二区三区在线免费观看| 羞羞色国产精品网站| 亚洲午夜女主播在线直播| 久久久久福利视频| 少妇又色又爽又黄的视频| 日韩av网址在线观看| 17婷婷久久www| 国产伦理久久久久久妇女| 18成人免费观看视频漫画| 麻豆国产精品| 国产一区二区电影| 成人性做爰片免费视频| 少妇久久久久久久久久| 久久久久性色av无码一区二区| 国产精品一区二区你懂的| 成人av网站在线| 精品乱色一区二区中文字幕| 国产福利第一视频| 精品久久久无码人妻字幂| 中文字幕日韩一区二区三区不卡| 亚洲精品一区二区三区四区高清| 5278欧美一区二区三区| 亚洲一一在线| 成年人黄色网址| 成人动漫精品一区二区| 97精品国产综合久久久动漫日韩| 久久精品99国产精品酒店日本| 99久久婷婷国产综合精品电影| 午夜不卡久久精品无码免费| 久久久久88色偷偷免费| 欧美孕妇与黑人巨交| 精品一区二区三区五区六区| xxav视频| 亚洲精品国产精品乱码| 国内自拍中文字幕| 先锋影院av| 日本va欧美va瓶| 欧美男生操女生| 欧美综合视频在线| www..com.cn蕾丝视频在线观看免费版| 国产在线精品一区二区| 日韩大胆人体| 一夜七次郎国产精品亚洲| 狠狠躁夜夜躁人人爽天天高潮| 国产日韩欧美在线视频观看| 91精彩刺激对白露脸偷拍| www.日本在线视频| 日韩成人黄色av| 久热在线中文字幕色999舞| 亚洲不卡1卡2卡三卡2021麻豆| 99精品电影| 中文字幕一区在线播放| 国产精品老女人视频| 黄色片视频在线免费观看| 看黄的a网站| 啪啪小视频网站| 影音先锋人妻啪啪av资源网站| 国产精久久一区二区三区| 久做在线视频免费观看| 日韩在线不卡视频| 国产日韩欧美精品一区| 国产麻豆久久| 日本高清视频www| 成人乱人伦精品视频在线观看| 亚洲欧美日本在线观看| 国产黑丝在线视频| 国产高清视频在线观看| 国产成a人亚洲精v品| 欧洲成人综合网| 精品国产一区二区三区成人影院| 99精品一区二区| 精品毛片网大全| 国产免费叼嘿网站免费| 国产精品一区二区在线看| 欧美日本精品在线| 182tv在线播放| 91精品国产三级| 天天摸夜夜添狠狠添婷婷| 国产精品麻豆免费版| 麻豆精品在线视频| 欧美成人黄色网址| 欧美成人在线免费观看| 中文一区二区完整视频在线观看| 中文一区在线| jlzzjlzz亚洲女人| 乱码一区二区三区| 9i看片成人免费看片| 欧美一区二区三区在| 91成人短视频| 久久精品成人一区二区三区| 国产内射老熟女aaaa∵| 欧美国产视频日韩| 日韩欧美在线番号| 欧美一级淫片videoshd| 欧日韩一区二区三区| 69亚洲精品久久久蜜桃小说| 日韩美女主播在线视频一区二区三区| 都市激情亚洲欧美| 日韩av中文字幕第一页| 91香蕉视频污在线| 亚洲熟女乱综合一区二区| 中文字幕一区二区三区色视频| 亚洲午夜在线| av电影成人| 亚洲欧美激情另类校园| 91精品国产综合久久香蕉| 蜜桃视频一区二区在线观看| 国产一区二区h| 九九热精品视频| 亚洲国产日产av| 国产精品视频免费观看| 我不卡伦不卡影院| 波多野结衣视频在线看| 亚洲一卡二卡在线| 在线日韩国产网站| 亚洲国产精品久久久久爰性色| 成人免费影院| 91视视频在线观看入口直接观看www| 91麻豆精品国产无毒不卡在线观看| 国产精品对白| 久草视频免费在线播放| 一二三四社区欧美黄| 国产一区二区三区中文字幕| 免费日韩电影在线观看| tube8在线hd| av亚洲精华国产精华精| 欧美在线二区| www.欧美免费| 日韩在线观看精品| 性欧美一区二区三区| 亚洲人成网站77777在线观看| 国产成人精品亚洲男人的天堂| 久久久久久不卡| 99久久精品免费看国产交换| 日日夜夜操视频| 国产日韩欧美视频| 一级国产黄色片| 欧洲中文在线| 欧美顶级毛片在线播放| 在线观看91av| 欧洲美女亚洲激情| 色猫咪免费人成网站在线观看| 亚洲人精选亚洲人成在线| 99se视频在线观看| 2019av中文字幕| 日韩精品一级中文字幕精品视频免费观看| 日本韩国欧美精品大片卡二| 国产亚洲色婷婷久久| 亚洲春色综合另类校园电影| 九九视频直播综合网| 久久精品夜色噜噜亚洲aⅴ| 91女人视频在线观看| 国产字幕在线看| 九九热国产在线| 久久精品亚洲欧美日韩精品中文字幕|