亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2021年03月04日 14:30:31   作者:AresKris  
這篇文章主要給大家介紹了關于C/C++根據年月日計算星期幾(蔡勒公式篇)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

蔡勒公式  蔡勒(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(前兩位數(shù))
  • y:年(后兩位數(shù))
  • m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月來計算,比如2003年1月1日要看作2002年的13月1日來計算)
  • d:日  [ ]代表取整,即只要整數(shù)部分。

下面以中華人民共和國成立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,注意對負數(shù)的取模運算!)

示例代碼:

int ReturnWeekDay( unsigned int iYear, unsigned int iMonth, unsigned int iDay )
{
	int iWeek = 0;
	unsigned int y = 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;
	}
 
	return iWeek;
}

總結

到此這篇關于C/C++根據年月日計算星期幾(蔡勒公式篇)的文章就介紹到這了,更多相關C/C++計算星期幾內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 基于C++編寫一個簡單的服務器

    基于C++編寫一個簡單的服務器

    這篇文章主要為大家詳細介紹了如何基于C++編寫一個簡單的服務器,文中的示例代碼講解詳細,具有一定的參考價值,感興趣的小伙伴可以了解一下
    2023-03-03
  • 解析c++ 中智能指針引用計數(shù)為什么不是0原理

    解析c++ 中智能指針引用計數(shù)為什么不是0原理

    這篇文章主要為大家介紹了C語言中智能指針引用計數(shù)為什么不是0原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • 詳解c++中的trait與policy模板技術

    詳解c++中的trait與policy模板技術

    trait模板和policy模板技術是把模板的trait和policy這兩個針對不同具體類型有變化的方面抽離出來形成兩個獨立的模板。由于trait和policy本身是模板,它的行為是可配置的,在模板中通過組合或者以模板實參傳進來的方式使用trait和policy,就可以配置出不同的具體實現(xiàn)
    2021-06-06
  • Qt中TableView與TreeView組件聯(lián)動實現(xiàn)

    Qt中TableView與TreeView組件聯(lián)動實現(xiàn)

    本文主要介紹了Qt中TableView與TreeView組件聯(lián)動實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-12-12
  • 探討編寫int strlen(char *strDest);不允許定義變量的問題

    探討編寫int strlen(char *strDest);不允許定義變量的問題

    本篇文章是對編寫int strlen(char *strDest);不允許定義變量的問題進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • 利用C++實現(xiàn)雙鏈表基本接口示例代碼

    利用C++實現(xiàn)雙鏈表基本接口示例代碼

    雙鏈表:在單鏈表的每個結點中,再設置一個指向其前驅結點的指針域,下面這篇文章主要給大家介紹了關于利用C++實現(xiàn)雙鏈表基本接口的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • C語言文件操作入門指南

    C語言文件操作入門指南

    我們在想既然是通訊錄就應該把信息記錄下來,只有我們自己選擇刪除數(shù)據的時候,數(shù)據才不復存在,這就涉及到了數(shù)據持久化的問題,我們一般數(shù)據持久化的方法有,把數(shù)據存放在磁盤文件、存放到數(shù)據庫等方式,使用文件我們可以將數(shù)據直接存放在電腦的硬盤上,做到了數(shù)據的持久化
    2024-08-08
  • Qt的Qss用法小結

    Qt的Qss用法小結

    Qt的Qss是一種用于定義用戶界面的樣式表語言,本文主要介紹了Qt的Qss用法小結,非常具有實用價值,需要的朋友可以參考下
    2023-06-06
  • 淺析C語言中堆和棧的區(qū)別

    淺析C語言中堆和棧的區(qū)別

    堆和棧都是一種數(shù)據項按序排列的數(shù)據結構。在C語言中是非常重要的知識點,接下來通過本文給大家介紹C語言中堆和棧的區(qū)別,感興趣的朋友一起看下吧
    2016-06-06
  • C++成員解除引用運算符的示例詳解

    C++成員解除引用運算符的示例詳解

    這篇文章主要介紹了C++成員解除引用運算符,本例子在編譯期間給指針賦值,在更為復雜的類中,可以使用指向數(shù)據成員和方法的成員指針,需要的朋友可以參考下
    2022-01-01

最新評論