1樓:網友
計算任何一天是星期幾的幾種演算法。
近日在論壇上看到有人在問星期演算法,特別整理了一下,這些演算法都是從網上搜尋而來,演算法的實現是我在專案中寫的。希望對大家有所幫助。
一:常用公式。
w = y-1] +y-1)/4] -y-1)/100] +y-1)/400] +d
y是年份數,d是這一天在這一年中的累積天數,也就是這一天在這一年中是第幾天。
二:蔡勒(zeller)公式。
w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
公式中的符號含義如下,w:星期;c:世紀;y:
年(兩位數); m:月(m大於等於3,小於等於14,即在蔡勒公式中,某年的月要看作上一年的月來計算,比如2003年1月1日要看作2002年的13月1日來計算);d:日;[ 代表取整,即只要整數部分。
相比於通用通用計算公式而言,蔡勒(zeller)公式大大降低了計算的複雜度。
三:對蔡勒(zeller)公式的改進。
相比於另外乙個通用通用計算公式而言,蔡勒(zeller)公式大大降低了計算的複雜度。不過,筆者給出的通用計算公式似乎更加簡潔(包括運算過程)。現將公式列於其下:
w=[y/4]+r (y/7)-2r(c/4)+m』+d
公式中的符號含義如下,r ( 代表取餘,即只要餘數部分;m』是m的修正數,現給出1至12月的修正數1』至12』如下:(1』,10』)=6;(2』,3』,11』)=2;(4』,7』)=5;5』=0;6』=3;8』=1;(9』,12』)=4(注意:在筆者給出的公式中,y為潤年時1』=5;2』=1)。
其他符號與蔡勒(zeller)公式中的含義相同。
四:基姆拉爾森計算公式。
這個公式名稱是我給命名的,哈雜湊望大家不要見怪。
w= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7
在公式中d表示日期中的日數,m表示月份數,y表示年數。
注意:在公式中有個與其他公式不同的地方:
2樓:
計算出該日與給出日的距離d(沒多大技巧)
如果是在未來day=(4+d-1)%7+1;
如果是在過去day=(4+temp*7-d-1)%7+1; (temp足夠大)
c語言程式設計
3樓:q是
c語言 日期問題 我可以寫。
怎麼用C語言程式設計計算,怎麼用C語言程式設計計算1 2 1 3 1 4?
c語言求以上算式,參考 如下 include int main c語言 分數計算怎麼編 如1 1 2 1 3 1 4 1 n 需要準備的材bai料分別du有 電腦 c語言編譯器。1 首zhi先,dao開啟c語言編譯器專,新建一個初始屬.cpp檔案,例如 test.cpp。2 在test.cpp檔案中...
C語言程式設計,求助大佬,謝謝,C語言程式設計題讀取時間求助,謝大佬了
include include include int main void else output length 0 printf s n output free input free output return 0 c語言程式設計題讀取時間求助,謝大佬了 字元轉整形抄的簡單應 bai用du 使用到...
c語言程式設計 有一分數序列 ,C語言程式設計 有一分數序列 2 1,3 2,5 3,8 5,13 8,21 13 求出這個數列的前20項之和。
剛剛重寫bai了一du個,覺得這個zhi 簡單易懂,dao 樓主可專 以看看屬 include stdio.h void main printf 前20項和是 5.2f n sum 1.首先弄清楚這組分數序列的規律 從第二個數開始 分子 前一個專數的分屬子 分母 分母 前一個數的分子 2.需求是前2...