北京時間:
東經(jīng)120°(東八區(qū)),北京時間=北京時間比格林尼治時間+8小時
Calendar bjcalendar = Calendar.getInstance();
bjcalendar.setTimeZone(TimeZone.getTimeZone(“GMT+8:00”));
平太陽時間:
我們平時生活中的用到的北京時間就是平太陽時間,但使用時一般指當(dāng)?shù)氐慕?jīng)度對應(yīng)的時間(地方時),比如所在北京116°21′,這個經(jīng)度和北京標(biāo)準(zhǔn)時間對應(yīng)的經(jīng)度相差3度,那么時間也就差了870秒左右。
這里獲取方式有二種,第一種使用GPS定位里面的時間,這個最準(zhǔn) Calendar locCalendar = Calendar.getInstance(); locCalendar(location.getTime()); 第二種使用當(dāng)?shù)爻鞘凶鴺?biāo)和北京(東八區(qū)換算)得到相對準(zhǔn)確的時間 其計算公式為地方標(biāo)準(zhǔn)時間=北京標(biāo)準(zhǔn)時間+4分×(地方經(jīng)度一12O度)。 因為各經(jīng)度相對東經(jīng)120度時間差基本不會變化,可以定義成常量 eg。北京數(shù)據(jù)如下 '北京市區(qū)', 116.46, -850, 39.92//城市名稱,經(jīng)度,時間差(精確到秒),緯度 '北京平谷', 117.10, -696, 40.13 '北京密云', 116.85, -756, 40.37 '北京順義', 116.65, -804, 40.13 '北京通縣', 116.67, -799, 39.92 '北京懷柔', 116.62, -811, 40.32 '北京大興', 116.33, -881, 39.73 '北京房山', 115.98, -965, 39.7 '北京延慶', 115.97, -967, 40.47 '北京昌平', 116.20, -912, 40.22 使用 Calendar bjcalendar = Calendar.getInstance(); bjcalendar.setTimeZone(TimeZone.getTimeZone('GMT+8:00')); Calendar locCalendar = Calendar.getInstance(); locCalendarbjcalendar.getTimeInMillis() + selectCity.differTime * 1000);
真太陽時間:
太陽視圓面中心連續(xù)兩次上中天的時間間隔叫做真太陽日。1真太陽日又分為24真太陽時。這個時間系統(tǒng)稱為真太陽時。因此,為了和人們的日常生活習(xí)慣一致,把真太陽時定義為:真太陽視圓面中心的時角加12小時。因為真太陽時是觀測太陽視圓面中心得到的,所以真太陽時也稱為視太陽時,簡稱視時。即:真太陽時=地方時+均時差。
均時差:地球的軌道是橢圓的,依據(jù)克卜勒運動定律,太陽移動速度有時較快,有時較慢(+/-16分鐘)。由于這個變換較小可以在相關(guān)天文觀測數(shù)據(jù)里面把這些數(shù)值定義成常量
eg。:
(0, -189),//1月01日,-3:9
(1, -218),//1月02日,-3:38
(2, -246),//1月03日,-4:6
(3, -273),//1月04日,-4:33
(4, -301),//1月05日,-5:1
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(locTime -189*1000);
黃帝紀(jì)年
黃帝紀(jì)年是根據(jù)黃帝歷和天干地支以及帝王世系表推算的華夏人文初祖黃帝即位以及創(chuàng)制歷法的時間開始紀(jì)年。
農(nóng)歷
農(nóng)歷是我國傳統(tǒng)歷法,又有陰歷、華歷、夏歷、漢歷、中歷等名稱。農(nóng)歷并不是純陰歷,而是一種陰陽合歷,取月相的變化周期即朔望月為月的長度,加入干支歷“二十四節(jié)氣”成分,參考太陽回歸年為年的長度,通過設(shè)置閏月以使平均歷年與回歸年相適應(yīng)。農(nóng)歷是以陰歷(夏歷)為基礎(chǔ),融合陽歷成分而成的一種歷法。所以我國的農(nóng)歷從嚴(yán)格意義上說不應(yīng)該叫陰歷,而是陰陽合歷。 [1-2]
農(nóng)歷屬于一種陰陽合歷:其年份分為平年和閏年。平年為十二個月;閏年為十三個月。月份分為大月和小月,大月三十天,小月二十九天,其平均歷月等于一個朔望月。一年中哪個月大,哪個月小,由計算決定。
農(nóng)歷是兼顧太陽、月亮與地球關(guān)系的一種歷法。陰歷不考慮地球繞太陽的運行,因而使得四季的變化在陰歷上就沒有固定的時間,不能反映季節(jié)。與陽歷年固定在365天或366天不同的是,陰歷年相比陽歷年在天數(shù)上有時會相差一個月;為了協(xié)調(diào)陰歷年與陽歷年之間的天數(shù),于是便通過“置閏法”進行調(diào)整使陰歷月相總天數(shù)與陽歷回歸年總天數(shù)相適應(yīng)
干支紀(jì)年:
干支(gānzhī)紀(jì)年法是中國歷法上自古以來就一直使用的紀(jì)年方法。干支是天干和地支的總稱。把干支順序相配正好六十為一周,周而復(fù)始,循環(huán)記錄,這就是俗稱的“干支表”。
甲、乙、丙、丁、戊、己、庚、辛、壬、癸十個符號叫天干;
子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥十二個符號叫地支。
干支紀(jì)月
干支紀(jì)月是指在農(nóng)歷中用干支記錄月序。只用地支紀(jì)月,每月固定用十二地支表示。把冬至所在之月稱為“子月”(農(nóng)歷十一月),下一個月稱為“丑月”(農(nóng)歷十二月),以此類推。故古歷中的《夏歷》以“寅月”為正月,又稱建寅之月或建寅正月等。
干支紀(jì)月以農(nóng)歷每月初一日作為分界點。
干支紀(jì)時
干支紀(jì)時,就是用60組各不相同的天干地支按照既定方式標(biāo)記時間的紀(jì)時方法。它是干支歷的重要組成部分。既定方式為把1天分為12個時辰,從晚上23點正開始,從甲子這個干支開始標(biāo)注第一個時辰,一個時辰相當(dāng)于現(xiàn)在兩個小時,之后每兩個小時接著順序標(biāo)注,60組干支不斷循環(huán)往復(fù)。由于地支只有12個,所以是固定不變的,古時人們說時辰的時候,只說地支就可以了
這里需要特別注意刻的計算,一般采用百刻制
百刻制說明:一日百刻。一時辰八大刻,二小刻。一大刻六十分,一小刻十分,一時辰共五百分。初初小刻為界,正初小刻為中。初一、初二、初三、初四為上四大刻;正一、正二、正三、正四為下四大刻。換算成現(xiàn)代秒數(shù),即一分為14.4秒,一小刻為144秒即2.4分鐘,一大刻為864秒即14.4分鐘。
示例圖片
最近在整理二十八星期排序發(fā)現(xiàn)網(wǎng)絡(luò)有些數(shù)據(jù)是錯誤的,先把自己的整理記錄一下
錯誤表象一:28星宿有一部分?jǐn)?shù)據(jù)只有27個,漏掉了一個
錯誤表象二:星宿的排序直接使固定的月份對照
(古代歷算家以二十八宿中的一宿配六十甲子,共得甲子七次,稱為七元,對于七元甲子的意義(協(xié)紀(jì)辨方.本原)解釋說:'考原云:日有六十,宿有二十八,四百二十日而一周,四百二十者,以六十與二十八俱可度盡也.故有七元之說.
一元甲子起虛;
二元甲子起奎;
三元甲子起畢;
四元甲子起鬼;
五元甲子起翼;
六元甲子起氏;
七元甲子起箕
至七元盡,而甲子又起虛,周而復(fù)始.)
二十八宿從角宿開始,自西向東排列,與日、月視運動的方向相同。每一個方位對應(yīng)7個星宿
東方青龍七宿:角、亢、氐、房、心、尾、箕
北方玄武七宿:斗、牛、女、虛、危、室、壁
西方白虎七宿:奎、婁、胄、昴、畢、觜、參
南方朱雀七宿:井、鬼、柳、星、張、翼、軫
二十八宿與十二地支對應(yīng)關(guān)系
地支是中國古代天文學(xué)最最核心的內(nèi)容,是中國古代天文學(xué)最重要的符號。地支來源古代二十八星宿另一種一年的表達方式。地支創(chuàng)建的方法是采用二十八星宿部分星象符號。
二十八宿從角宿開始,自西向東排列,與日、月視運動的方向相反:
東方稱青龍:角木蛟、亢金龍、氐土貉、房日兔、心月狐、尾火虎、箕水豹;
北方稱玄武:斗木獬、牛金牛、女土蝠、虛日鼠、危月燕、室火豬、壁水貐;
西方稱白虎:奎木狼、婁金狗、胃土雉、昴日雞、畢月烏、觜火猴、參水猿;
南方稱朱雀:井木犴、鬼金羊、柳土獐、星日馬、張月鹿、翼火蛇、軫水蚓。
后來巴比倫人把星期制的七天,分別配上一個天體的名字,星期也即是星的日期的意思,有時也把星期叫做'曜日'.如日曜日就是星期天:代表大陽;星期一是月曜日,代表月亮;星期二是火曜日,代表火星;星期三是水曜日,代表水星;星期四是木曜日,代表木星;星期五是金曜日,代表金星;星期六是土曜日,代表土星.星期制的產(chǎn)生與的月亮園缺變化有關(guān),而'禮拜'則是基督敖使用的浯言 ,和中國太陽、太陰、金、木、水、火、土對應(yīng)
星期日→日禽日
星期一→月禽日
星期二→火禽日
星期三→水禽日
星期四→木禽日
星期五→金禽日
星期六→土禽日
所以準(zhǔn)確的計算方式是先找一個確定的星宿的天,對應(yīng)星宿xingXiu及其對應(yīng)的干支earDay。然后計算某一天和xingXiu的差值,然后按照28星宿的輪詢順序得到準(zhǔn)確的星宿。
根據(jù)輪詢的規(guī)則如人總結(jié)了 四句三合局起宮位的口訣
1,虛畢翼箕奎鬼氐。申子辰日用;
2,昂張尾壁井亢女,亥卯未日用;
3,星心室參角牛胃,寅午戌日用;
4,房危觜軫斗婁柳,巳酉丑日用。
把星期放進去就是下圖:
古人在此基礎(chǔ)上面還有一套立法,即年月日時都用星宿表示。
二十八宿即“禽星”,分四方、七政。
一元虛張室軫遊,二元奎亢胃房求,三畢尾參求覓斗,四鬼女星危月求。五翼壁角婁金狗,六氐昴嘴火猴,七箕井畔牛邊柳,此是七元四將頭
“弘治甲子上元逢,三元符將依舊還。中元已卯符頭定,甲午已酉年值通。康熙上元畢月值,循環(huán)順數(shù)去無窮”
1918年角宿值年,1919年亢宿值年…1924年中元甲子箕宿值年…1984年下元甲子虛宿值年,2002年箕宿值年。
“會得年禽月易求,太陽用角木參頭,太陰室宿火星值,金心土胃水騎牛”。
周其法,若太陽值年,正月是角,太陰值年,正月是室。順數(shù)十二月,每月值一星,余傲此。---引自四庫全書
“七元禽星會者稀,虛奎畢鬼翼氏箕,但將甲子從頭數(shù),元元相續(xù)報君知”
數(shù)學(xué)的計算規(guī)則: 因為420是60甲子和28宿的最小公倍數(shù),所以二十八宿有七元甲子共420天。 一元甲子起虛(以子象鼠而虛為日鼠也),二十八宿往后依序編排。即甲子(1)在虛,第57(1+28*2)位也在虛,第58位在危,第59位在室,第60位在壁,第61位(也就是第1位的甲子)在奎。所以二元甲子起奎,依法得,三元甲子起畢,四元甲子起鬼,五元甲子起翼,六元甲子起氐,七元甲子起箕。
按日歷推算:
最近的“一元一將”是1996年1月28日,該日儒略日為2450111,加420日又是“一元一將”,即1997年3月23日的甲子日又是“一元一將”
如1984年下元甲子年七月初二甲子 日為一元一將,虛日宿值日,并且此日肯定是星期日,七月十七為一元二將,張月值日,張屬月為星期一。
如:2002年2月10日已酉日是“二元四將”,按笫五條口訣值日是女土蝠。
日起時禽起子時,日虛月鬼火從箕,水畢朩氏金奎位,土宿還從翼宿推
紫白飛星
三元九運每元各二十年,在此二十年中每年天體的運行位置不同,對地球的反照也不同,其人與事的吉兇各異,其應(yīng)驗結(jié)果是有區(qū)別的,在二十年中九星輪三次運照地球,除五黃外共計二十四年,再減云父母三般以正三元,余二十一位,加上黃金歲差與磁偏角計二十年左右,因陰陽宅是注重空間與時間通氣的學(xué)問,氣流吉兇隨時都在變化,所以年紫白飛星對于風(fēng)水的吉兇變化是有很大影響的,在判斷風(fēng)水每年的吉兇,就必須運用年紫白飛星盤。
年月日時紫白(入中)計算辦法
public static int addNum(int num) { int sum = 0; while (num != 0) { sum = sum + num % 10; num = num / 10; } return sum; } //NewConstant.FEI_XING_YEAR數(shù)據(jù): 一白 九紫 八白 七赤 六白 五黃 四綠 三碧 二黑 一白 public static String getFeiXingYear(int year) { int sum = addNum(year); while (sum > 9) { sum = addNum(sum); } return NewConstant.FEI_XING_YEAR[sum]; }
//NewConstant.FEI_XING_MONTH : 一白 二黑 三碧 四綠 五黃 六白 七赤 八白 九紫 /** * @param earZhiYear 年支 * @param lunarMonthName 農(nóng)歷月名稱 * @return */ public static String getFeiXingMonth(String earZhiYear, String lunarMonthName) { int lunMonthIndex = CalendarUtils.transferLunarMonth2Index(lunarMonthName);//計算月索引0-11 int startIndex; if ('子午卯酉'.contains(earZhiYear)) { startIndex =1; } else if ('辰戌丑末'.contains(earZhiYear)) { startIndex = 4; } else {//寅申巳亥 startIndex = 7; } return NewConstant.FEI_XING_MONTH[8 - (startIndex + lunMonthIndex) % 9]; }
實現(xiàn)代碼如下
/** 1.冬至至立春末日:日干支序數(shù)÷9所得余數(shù)(除盡時余數(shù)為9); * 2.雨水至清明末日:(日干支序數(shù)+6)÷9所得余數(shù)(除盡時余數(shù)為9); * 3.谷雨至芒種末日:(日干支序數(shù)+3)÷9所得余數(shù)(除盡時余數(shù)為9); * 4.夏至至立秋末日:日干支序數(shù)÷9所得余數(shù)(除盡時余數(shù)為9)的合十?dāng)?shù); * 5.處暑至寒露末日:(日干支序數(shù)+6)÷9所得余數(shù)(除盡時余數(shù)為9)的合十?dāng)?shù); * 6.霜降至大雪末日:(日干支序數(shù)+3)÷9所得余數(shù)(除盡時余數(shù)為9)的合十?dāng)?shù); * '冬至', '小寒', '大寒', '立春', * '雨水', '驚蟄', '春分', '清明', * '谷雨', '立夏', '小滿', '芒種', * '夏至', '小暑', '大暑', '立秋', * '處暑', '白露', '秋分', '寒露', * '霜降', '立冬', '小雪', '大雪' * * @param jq 二十四節(jié)氣索引 * @return 節(jié)氣分割索引 * 冬至至立春末日 0 * 雨水至清明末日 1 * 谷雨至芒種末日 2 * 夏至至立秋末日 3 * 處暑至寒露末日 4 * 霜降至大雪末日 5 */ public static int getFeiXingDayDiv(int jq) { if (jq >= 0 && jq < 4) {//0冬至 4雨水 立春末日:雨水的前一天 return 0; } else if (jq >= 4 && jq < 8) {//8 谷雨 清明末日:谷雨的前一天 return 1; } else if (jq >= 8 && jq < 12) {//12 夏至 芒種末日:夏至的前一天 return 2; } else if (jq >= 12 && jq < 16) {//16處暑 立秋末日:處暑的前一天 return 3; } else if (jq >= 16 && jq < 20) {//20 霜降 寒露末日:霜降的前一天 return 4; } else { // 大雪末日:冬至的前一天 return 5; } } /** NewConstant.FEI_XING_DAY:一白 二黑 三碧 四綠 五黃 六白 七赤 八白 九紫 * @param jqIndex 節(jié)氣索引0 -23 * @param eraDay 日干支 * @return */ public static String getFeiXingDay(int jqIndex, String eraDay) { int startIndex = 0; int jqDiv = getFeiXingDayDiv(jqIndex); int earIndex = transferDaysGanZHi2Index(eraDay); if (jqDiv == 0) { startIndex = 0; } else if (jqDiv == 1) { startIndex = 6; } else if (jqDiv == 2) { startIndex = 3; } else if (jqDiv == 3) { startIndex = 8; } else if (jqDiv == 4) { startIndex = 2; } else { startIndex = 5; } if (jqIndex >= 12) {//夏至 - 冬至 逆序 return NewConstant.FEI_XING_MONTH_DAY[8 - (startIndex + earIndex) % 9]; } else {//冬至后 順序 return NewConstant.FEI_XING_MONTH_DAY[(startIndex + earIndex) % 9]; } }
參考資料
https://baike.baidu.com/item/二十八星宿/675
https://baike.baidu.com/item/農(nóng)歷二十四節(jié)氣/3405412?fromtitle=農(nóng)歷節(jié)氣
http://blog.sina.com.cn/s/blog_45af90ec0101cd31.html
http://blog.sina.com.cn/s/blog_7335b7250102w4k1.html
http://www.360doc.com/content/10/1128/19/414835_73198449.shtml
http://baijiahao.baidu.com/s?id=1586355490773164695&wfr=spider&for=pc