蔡勒公式是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蔡勒公式是啥?相关的知识,希望对你有一定的参考价值。
蔡勒(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:日
[ ]代表取整,即只要整数部分。 参考技术A 公式 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:日
[ ]代表取整,即只要整数部分。追答
一般c语言程序用的比较多。。
本回答被提问者采纳万年历
题目描述
实现思路
代码实现
#include <iostream>
#include <cstdlib>
#include<cmath>
using namespace std;
int main()
{
string input;
cin>>input;
int first_=input.find("-");//第一次出现"-"的位置.
int last_=input.rfind("-");//最后一次出现"-"的位置.
//cout<<first_<<endl;
//cout<<last_;
int year = atoi(input.substr(0,4).c_str());//取出年份
int month= atoi(input.substr(first_+1,last_-first_-1).c_str());//取出月份
int day = atoi(input.substr(last_+1).c_str());//取出天数
//cout<<year<<endl;
//cout<<month<<endl;
//cout<<day;
//利用蔡勒公式计算
if(month==1||month==2){
month=month+12;//1月份相当于上一年的13月,2月份相当于上一年的14月
year=year-1;
}
int c=year/100;//取年份的前两位数
int y=year%100;//取年份的后两位数
int m=month;
int d=day;
int w=int((y+floor(y/4)+floor(c/4)-2*c+floor(26*(m+1)/10)+d-1))%7;
if(w<0){
w=w+7;
}
switch(w){
case 0:
cout<<"Sunday";
break;
case 1:
cout<<"Monday";
break;
case 2:
cout<<"Tuesday";
break;
case 3:
cout<<"Wednesday";
break;
case 4:
cout<<"Thursday";
break;
case 5:
cout<<"Friday";
break;
case 6:
cout<<"Saturday";
break;
}
return 0;
}
以上是关于蔡勒公式是啥?的主要内容,如果未能解决你的问题,请参考以下文章