C/C++根據年月日計算星期幾(蔡勒公式篇) - IT145.com

文章推薦指數: 80 %
投票人數:10人

C/C++根據年月日計算星期幾(蔡勒公式篇) · w:星期; w對7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六 · c:世紀-1( ... 首頁 > 軟體 C/C++根據年月日計算星期幾(蔡勒公式篇) 2021-03-0416:01:11 蔡勒公式 蔡勒(Zeller)公式:是一個計算星期的公式。

隨便給一個日期,就能用這個公式推算出是星期幾。

蔡勒公式如下: W=[C/4]-2C+y+[y/4]+[13*(M+1)/5]+d-1 或者是: w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 公式中的符號含義如下: w:星期;w對7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六 c:世紀-1(前兩位數) y:年(後兩位數) m:月(m大於等於3,小於等於14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月來計算,比如2003年1月1日要看作2002年的13月1日來計算) d:日 []代表取整,即只要整數部分。

下面以中華人民共和國成立100週年紀念日那天(2049年10月1日)來計算是星期幾,過程如下: w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1  =49+[49/4]+[20/4]-2×20+[26×(10+1)/10]+1-1  =49+[12.25]+5-40+[28.6]  =49+12+5-40+28  =54(除以7餘5) 即2049年10月1日(100週年國慶)是星期五。

再比如計算2013年3月7日,過程如下: w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1  =13+[13/4]+[20/4]-2*20+[26*(3+1)/10]+7-1  =-3(除以7餘4,注意對負數的取模運算!) 範例程式碼: intReturnWeekDay(unsignedintiYear,unsignedintiMonth,unsignedintiDay) { intiWeek=0; unsignedinty=0,c=0,m=0,d=0; if(iMonth==1||iMonth==2) { c=(iYear-1)/100; y=(iYear-1)%100; m=iMonth+12; d=iDay; } else { c=iYear/100; y=iYear%100; m=iMonth; d=iDay; } iWeek=y+y/4+c/4-2*c+26*(m+1)/10+d-1;//蔡勒公式 iWeek=iWeek>=0?(iWeek%7):(iWeek%7+7);//iWeek為負時取模 if(iWeek==0)//星期日不作為一週的第一天 { iWeek=7; } returniWeek; } 總結 到此這篇關於C/C++根據年月日計算星期幾(蔡勒公式篇)的文章就介紹到這了,更多相關C/C++計算星期幾內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com! 相關文章 英特爾:一失足成千古恨,再回頭已「百年身」 2021-05-1214:32:11 11歲男孩日充遊戲7千多元!家長稱實名存漏洞,騰訊退費 2021-05-1214:32:00 火龍果財經:ETH、BTC有什麼不同 2021-05-1214:31:57 誰更令你心動?合資品牌銷量支柱齊換代 2021-05-1214:31:30 蘋果iPhone13Pro被截胡,國產廠商搶先一步,庫克可能也沒料到 2021-05-1214:31:20 印度工廠現大規模感染,iPhone產量被砍半!富士康母公司連續3天大跌,近600億市值蒸發 2021-05-1214:31:19 熱門文章 1win10升級後無法調整螢幕解析度怎麼辦 2Win7/8.1/10/Office啟用工具使用教學(KMSpico) 3win10下【寬頻連線錯誤813】怎麼辦? 4Excel密碼破解:開啟密碼,保護密碼,VBA密碼 5如何更改AndroidStudio的程式碼字型和顏色 6EXCEL技巧——EXCEL如何製作族譜 7AdobePhotoshopCC官方中文版安裝破解教學 8如何使用PPT製作轉盤抽獎的動畫 9excel表格怎麼設定到期日前自動提醒功能 10如何在Photoshop中開啟並使用pat格式的檔案 IT145.comE-mail:sddin#qq.com



請為這篇文章評分?