用VC 設計乙個由日期判斷對應是星期幾的程式

2021-09-06 06:08:48 字數 733 閱讀 1601

c語言根據日期判斷星期幾(使用基姆拉爾森計算公式)

演算法如下:

基姆拉爾森計算公式

w= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7

在公式中d表示日期中的日數,m表示月份數,y表示年數。

注意:在公式中有個與其他公式不同的地方:

以公元元年為參考,公元元年1月1日為星期一程式如下:

#include "stdio.h"

void caculateweekday(int y,int m, int d)

int iweek=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;

switch(iweek)

} void main()

} 執行效果:

請輸入日期:

格式為:1900,1,1

2008,4,29

星期二輸入0退出,其他繼續:d

2008,1,1

星期二輸入0退出,其他繼續:l

2008,8,8

星期五輸入0退出,其他繼續:0

請按任意鍵繼續. . .

編者注:用來算現在真實日期的星期是沒有問題的。原理是根據已知公元1年1月1日的星期數來推算。如果在你的題目中約定了某天是星期幾,你要注意那天的星期是否跟真實的星期相同,如果不同,需要考慮相差幾天!

如果大家覺得不夠過癮,可以看看以下該公式的推導過程,讓大家對曆法有個更深刻的認識

判斷乙個日期輸入是否正確。

本程式用於驗證輸入從公元元年後的乙個日期,然後判斷日期是否正確。若輸入錯誤日期,則繼續進行此流程,直至日期正確。rq函式中先對月份和年份進行判斷,然後在switch中對二月做閏年的處理,判斷其是否正確。include int rq int y,int m,int d if year 1 switch...

乙個判斷日期的程式設計問題

題目 已知公元1年 1月1日是星期一。請編寫乙個程式,只要輸入年月日,就能自動回答當天是星期幾。要求 為測試該程式的方便,請將計算星期的演算法盡量放入乙個函式中,輸入和輸出檢查可用其它函式來處理。為簡單起見,不考慮西元前的日期。a 解答思路 計算輸入日期與公元1年 1月1日所相差的天數,具體如下 總...

用C 實現乙個日期類

最近在複習c 的時候發現日期類是乙個非常有用的類,在現實中是非常實用的 雖然我不知道為什麼這麼實用的類,庫里沒有 以下是我自己實現的日期類的 因為大部分都是運算子的過載,所以理解起來應該並不難 include include using namespace std class date date c...