1樓:匿名使用者
1.查查公元元年1年1月1日是星期幾2.懂得計算某一年是否閏年3.根據你輸入的年份,結合閏年演算法,計算輸入年份的元旦離公元元年元旦有幾天,並根據這個計算輸入年份元旦是星期幾
4.計算輸入年份是否閏年
5.按月份,輸出月曆,12個就是年曆了,或者說是這年的日曆。
2樓:匿名使用者
#include
using namespace std;
class date
//判斷這一年是不是閏年
static bool isleapyear(int year)void setdate(int y,int m,int d)void outputdatestring() const//通過另乙個有有效的星期部分的日期物件,計算今天是星期幾
else
*///測試用//
cout<<"請輸入年、月、日、星期幾(用數字表示,0-星期日,1-星期一,以此類推):";
cin>>y>>m>>d>>w;
date d1(y,m,d,w);
cout<<"請輸入年、月、日:";
cin>>y>>m>>d;
date d2(y,m,d);
d2.calculateweek(d1);
d2.outputdatestring();
return 0;}
1.c++ 給出年、月、日,計算該日是該年的第幾天。
3樓:罡風皓月
萬年星期歷公式
該公式是根據公曆的基本性質編制的,年份不限,準確率為100%,
公式如下: (年+年/4+年/400-年/100+月日天數-1)/7=xx……餘星期幾。
其中: (年+年/4+年/400-年/100)/7=xx……餘數為該年1月1日星期數。
注:分數商均取整數;
月日天數: 平年 ——潤年
一月為: 0+日數, 0+日數,
二月為: 3+日數, 3+日數,
三月為: 3+日數, 4+日數,
四月為: 6+日數, 0+日數,
五月為: 1+日數, 2+日數,
六月為: 4+日數, 5+日數,
七月為: 6+日數, 0+日數,
八月為: 2+日數, 3+日數,
九月為: 5+日數, 6+日數,
十月為: 0+日數, 1+日數,
十一為: 3+日數, 4+日數,
十二為: 5+日數, 6+日數,
注:月日天數為前各月累積7餘數+當月天數,可查算,也可心算。
例:2023年1月1日是星期幾?
(年+年/4+年/400-年/100)/7
=(1000+1000/4+1000/400-1000/100)/7
=(1000+250+2-10)/7
=1242/7
=xx……3
即該年1月1日為星期三。
例:2023年(平年)10月1日為星期幾?
(年+年/4+年/400+年/100+月日天數-1)/7
=(2005+2005/4+2005/400-2005/100+(0+1)-1)/7
=(2005+501+5-20+1-1)/7
=2491/7
=xx……6
即該年10月1 日為星期六。
還有一種方法:
最常見的公式: w = [y-1] + [(y-1)/4] - [(y-1)/100] + [(y-1)/400] + d y是年份數,d是這一天在這一年中的累積天數,也就是這一天在這一年中是第幾天。 最好用的是蔡勒公式:
w = [c/4] - 2c + y + [y/4] + [13 * (m+1) / 5] + d - 1 c是世紀數減一,y是年份後兩位,m是月份,d是日數。1月和2月要按上一年的13月和14月來算,這時c和y均按上一年取值。 兩個公式中的[...
]均指只取計算結果的整數部分。算出來的w除以7,餘數是幾就是星期幾。如果餘數是0,則為星期日。
我們來算2023年5月1日的星期,顯然c=20,y=4,m=5,d=1,代入蔡勒
公式,有:
w = [20/4] - 40 + 4 + 1 + [13 * (5+1) / 5] + 1 - 1
= -15.
注意負數不能按習慣的餘數的概念求餘數,只能按數論中的餘數的定義求餘。為了方便
計算,我們可以給它加上乙個7的整數倍,使它變為乙個正數,比如加上70,得到55。
再除以7,餘6,說明這一天是星期六。
4樓:匿名使用者
樓上的,樓主要的是c++語言寫的程式!
用c語言編修已知2023年1月1日是星期二,輸入任意乙個日期計算出該天是星期幾
5樓:業聽蓮
計算機日期計算是以乙個基準值進行的(好像是2023年1月1號),算出你輸入的日期平年和閏年距離2023年有多少個,然後得到天數再除以7.
6樓:匿名使用者
#include
#include
int noleap_mon[13] = ;
int leap_mon[13] = ;
bool isleap(int year)int countdays(int year, int mon, int day)
if(isleap(year)) elsetotal = - total;
} else
int main()
7樓:
看著就不想編 唉 太墮落了
問:c++程式設計: 1,輸入年月日,輸出距離今天還有多少天,星期幾,是否是公曆日。假定輸入的年份
8樓:匿名使用者
#define _crt_secure_no_warnings
#include
#include
using namespace std;
// 判斷星期幾
int getweekday(const int year, const int yday)
// 是否閏年
bool isleapyear(const int year)
// 獲取當天是一年中的第幾天
int getyearday(const int year, const int month, const int mday)
}yday += mday;
return yday;
}// 計算兩個日期的天數差(假設date1小於date2)
nday += (yday2 - yday1);
return nday;
}// 公曆節日,隨便弄15個。
const char* festivals = ;
char *weekdays = ;
void testdate1()
;sprintf(szdate, "%d,%d", month, day);
for (int i = 0; i < 30; i+= 2)}}
void testdate2()
int main()
} while (op != 3);
system("pause");
return 0;}
一道C程式設計題一道C程式設計題
include using namespace std class dif dif int lw,int hi 建構函式,用引數lw和hi分別初始化low和high int isdiff int y void process void show int dif isdiff int y 判斷引數y的...
C語言程式設計題目,乙個C語言程式設計題目
include int main 先乘以10000得到一bai個整數。需要du判斷是正數還是zhi 負數,執行 5還 或是 5,這dao個整數再專除以10000,即可屬得到你要求的結果了。include include double double3 double x int main double ...
已知三點求圓的方程的c語言程式設計,已知三點如何求圓的方程
已知三點求圓的 get circle 函式 x1,y1為第一個點的座標,以此類推 r為求出的半徑,x0,y0為圓心座標 呼叫函式之前應先檢查三點是否共線 否則會彈出被零除的錯誤 include void get circle double x1,double y1,double x2,double ...