1. 求星期公式
星期=[5+a(實際天數)] mod 7
2. 干支計算公式
六十甲子干支序號,從1-> 59-> 0。
六十甲子干支序號=[23+a(實際天數)] mod 60
3. 二十八宿計算公式
二十八宿序號=[23+a(實際天數)] mod 28
4. 實際天數a的計算
a=b(基本天數)+c(閏日天數)
b=(計算年-1)*365+(要計算到年的月日天數)
例:2023年2月1日的基本天數b=(1984-1)*365+(31+1)=723827(天),
其中,31是1月為31天,1為2月1日為1天。
公元308年8月28日的基本天數
b=(308-1)*365+(31+28+31+30+31+30+31+27)=112055+239=112294(天)
這裡的(要計算到年的月日天數),用的是公曆,月日天數的規則我好
象小學就學過了。哈哈……
c=(計算年-1) div 4 -誤差修正值 + fixvalue2
fixvalue2為0或者1。常值為0,當年數為閏年(公曆閏年法)之中的3月
1日之後的為1。
誤差修正值推算:
公元元年1月1日至2023年10月14日為0。
2023年10月15日至2023年12月31日為10。
從2023年1月1日起每增加乙個世紀累加1,但能被400除盡的世紀不累
加1。此方法推算即可。
--有乙個問題,2023年這一年的修正值應為多少呢?演算法中正好沒有
講到,但看來應該是10。
例2023年1月1日起誤差值為11,而2023年1月1日起誤差修正值為12,
而2023年1月1日起誤差修正值為13,
但2023年誤差修正值仍為13,因為2023年能被400整除,故不累加。而
2023年1月1日起誤差修正值為14。
5. 例項:1998.3.15的星期、干支與二十八宿
b=(1998-1)*365+(31+28+15)=728979
c=(1998-1) div 4 - 13 + 0 = 486
a=b+c=728979+486=729465
星期序號=(5+729465) mod 7=0,即為星期日
干支序號=(13+729465) mod 60=58,即為辛酉
二十八宿序號=(23+729465) mod 28=4,即為房
堆相關的一些操作
include includeusing namespace std const int maxn 100 heap為堆,n為元素個數 int heap maxn n 10 對heap陣列在 low,high 範圍進行向下調整 其中low為欲調整結點的陣列下標,high一般為堆的最後乙個元素的陣列下...
linux 一些相關操作命令
1,檢視內網ip ifconfig eth0 注意是數字0 2,檢視外網ip curl ifconfig.me 3,壓縮操作 tar zcvf kl law articles new 3.sql.tgz kl law articles new 3.sql c usr local 解壓到某個資料夾 z...
String及相關的一些操作
字串是常量,一旦被建立就不能改變,字串的值是存放在常量池裡面,可以改引用達到讓兩個字串相同的目的。如果要修改字串的內容或長度,並不能直接修改,而是要返回乙個新的string物件,原來的string是不改的。你要是嫌字串多操作多麻煩,不想新建string那你可以考慮使用stringbuffer,兩者差...