1、C语言根据日期判断星期几(使用基姆拉尔森计算公式)算法如下:基姆拉尔森计算公式W=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)mod7在公式中d表示日期中的日数,m表示月份数,y表示年数。注意:在公式中有个与其他公式不同的地方:把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。以公元元年为参考,公元元年1月1日为星期一。2、例程:#include "stdio.h"void CaculateWeekDay(int y,int m, int d){if(m==1||m==2) {m+=12;y--;}int iWeek=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;switch(iWeek){case 0: printf("星期一\n"); break;case 1: printf("星期二\n"); break;case 2: printf("星期三\n"); break;case 3: printf("星期四\n"); break;case 4: printf("星期五\n"); break;case 5: printf("星期六\n"); break;case 6: printf("星期日\n"); break;}}void main(){int year=0,month=0,day=0;printf("请输入日期:\n格式为:1900,1,1\n");char temp = '1';while (temp != '0'){scanf("%d,%d,%d",&year,&month,&day);scanf("%c",&temp);CaculateWeekDay(year,month,day);printf("输入0退出,其他继续:");scanf("%c",&temp);}}
importjava.util.*;publicclassCalendar{publicstaticvoidmain(String[]args){Calendarc=newCalendar.getInstance();c.set(2015,10,15);c.add(Calendar,Date,100);intyear=c.get(Calendar.Year);intmonth=c.get(Calendar.Month)+1;intdate=c.get(Calendar.Date);System.out.println(“现在日期是:”+year+“年”+month+“月”+date+“日”);这是我亲自妈码的代码,使用java实现的。
(100%7+2)%7
#include
main()
{int m,n,z;
printf("今天是星期1,2,3,4,5,6,7,和再过的天数\n");
scanf("%d %d",&m,&n);
z=(m+n)%7;
switch (z)
{
case 0 :printf("今天是星期%d\n%d天后是星期日",m,n); break;
case 1 :printf("今天是星期%d\n%d天后是星期一",m,n); break;
case 2 :printf("今天是星期%d\n%d天后是星期二",m,n); break;
case 3 :printf("今天是星期%d\n%d天后是星期三",m,n); break;
case 4 :printf("今天是星期%d\n%d天后是星期四",m,n); break;
case 5 :printf("今天是星期%d\n%d天后是星期五",m,n); break;
case 6 :printf("今天是星期%d\n%d天后是星期六",m,n); break;
}
}