c语言 判断日期

东软信息学院的老师们,每月15号发工资,但是,如果15号是周六,就14号发,如果是周日,就16号发。XXXX年XX月,几号发工资呢?
要求:输入数据有若干行,每行两个整数,表示年份和月份,以0 0结束。
输出每行一个输出,表示本月多少号发工资?

#include <stdio.h>
int CaculateWeekday(int y, int m, int d)
{
int w; //代表星期几
if (m==1 || m==2)
{
m += 12;
y--;
}
w = (d+1 + 2*m + 3*(m+1)/5 + y + y/4 - y/100 + y/400)%7;
return w;
}
void main()
{
int a, b;

while(scanf("a=%d b=%c",&a,&b)&& a!=0 && b!=0)

{
int result = CaculateWeekday(a,b,d) ;
if(result ==0)//0为星期天
printf("16");
else if(result == 6)//6为星期六
printf("14");

else

printf("15");//其他几是就星期几

}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-12
我就 是东软的。。。。。
发工资确实是这样的,呵呵。
等下我给你写下code追问

谢谢啊,求解~

追答

有点忙。。。
我告诉你下思路,然后你自己先简单的写下:
首先输入年和月,然后判断该年该月15日是礼拜几,如果不是周六,那么就是14号发工资,如果是周日,那么就是13号发工资。周不是周六和周日,那么就正常发工资,即:15号发工资。

关于年月日推出当天是周几的,这个有算法,我给你找个现成的,你看看,再有不会的继续追问
http://zhidao.baidu.com/link?url=TQNejbW9NiBYSOlSnbhkgzWcnOKiyVGBYE47BS-oCtn7LAoZj1n3ExKnW7OQKV1UoOTiodPkpKJr9buZ-GgNlK,判断是周几的例子。

第2个回答  2013-09-12
我记一个经验分享其相关内容,讲得很详细,是怎么能过SHELL取系统时间;http://jingyan.baidu.com/article/3c343ff73d58d00d36796341.html
相似回答