紧急悬赏:类似日历的C语言程序:输入4个天数,是从2000年1月1日起之后的天数。然后输出对应的天数和星期

作者&投稿:庾枝 (若有异议请与网页底部的电邮联系)
C语言编程:输入任意一个年份和月份,按格式输出该月份的公历日历~

if(month==4||6||9||11)
if(month==1||3||5||7||8||10||12)
这种写法是错误的。
应该这样写
if(month==4||month==6||month==9||month==11)
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
另外,其实你可以不这么写,太多了,可以用
switch..case
switch(month)
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day=31;break;
case 4:
case 6:
case 9:
case 11:
day=30;break;
case 2:
if()...

C语言程序如下:
#include
#define YES 1 /* 定义符号常数“是” */
#define NO 0 /* 定义符号常数“否” */
/* 函数 isleap(): 判断某年是否闰年 */
int isleap(int year)
{
int leap = NO;
if((year%4==0 && year%100!=0 )|| year%400==0)
leap = YES;
return leap;
}
/* 函数 week_of_newyears_day(): 求元旦是星期几 */
int week_of_newyears_day(int year)
{
int n = year-1900;
n = n+(n-1)/4+1;
n = n%7;
return n;
}
int main(int argc,char *argv[])
{
int year, month, day, weekday, len_of_month, i;
printf("
请输入某年年份: ");
scanf("%d",&year);
printf("
请输入某年1月1日:");
scanf("%d",&weekday);
/*因为你的要求是已知2000年1月1日是星期六,所以这里不用week_of_newyears_day去求星期六了*/
/*weekday = week_of_newyears_day(year); 求元旦是星期几 */
printf("


%d年
",year); /* 打印年份 */
for(month=1; month<=12;month=month+1) /* 打印12个月的月历 */
{
printf("
%d月份
",month);
printf("------------------------------------------------------
");
printf("星期日 星期一 星期二 星期三 星期四 星期五 星期六
");
printf("------------------------------------------------------
");
for(i=0;i<weekday;i=i+1) /* 找当月1日的打印位置 */
printf(" ");
if(month==4 || month== 6 || month==9 || month==11)
len_of_month = 30;
else if(month==2)
{
if(isleap(year))
len_of_month = 29;
else
len_of_month = 28;
}
else
len_of_month = 31;
for(day=1;day<=len_of_month;day=day+1)/* 打印当月日期 */
{
printf(" %2d ",day);
weekday = weekday+1;
if(weekday==7) /* 打满一星期应换行 */
{
weekday = 0;
printf("
");
}
}
printf("
"); /* 打完一月应换行 */
}
return 0;
}
运行效果如图

我之前写过的,类似你的需求,供参考

#include <stdio.h>
#include <string.h>
#include <time.h>

const char *Week[]=
{
"星期天",
"星期一",
"星期二",
"星期三",
"星期四",
"星期五",
"星期六"
};

#if 0
struct tm {
int tm_sec; /* seconds after the minute - [0,59] */
int tm_min; /* minutes after the hour - [0,59] */
int tm_hour; /* hours since midnight - [0,23] */
int tm_mday; /* day of the month - [1,31] */
int tm_mon; /* months since January - [0,11] */
int tm_year; /* years since 1900 */
int tm_wday; /* days since Sunday - [0,6] */
int tm_yday; /* days since January 1 - [0,365] */
int tm_isdst; /* daylight savings time flag */
};
#endif

void GetWeekDay(int year,int num);
void GetSomeDay(int year, int mon, int day);
void GetNextTime(int year, int mon, int day,int num);

int main()
{
GetWeekDay(2007,337);
GetSomeDay(2007,12,4);
GetNextTime(2005,12,4,0);
return 0;
}

void GetSomeDay(int year, int mon, int day)
{
time_t t;//存储需要计算时间距1900的秒数
struct tm test ;//填充这个结构

memset(&test, 0, sizeof(tm));//先清空下

test.tm_year = year - 1900;
test.tm_mon = mon -1;
test.tm_mday = day ;

t = mktime(&test);// 转换成秒
struct tm *now = localtime(&t);//再转回tm

printf("%d\n", now->tm_yday);//第几天
printf("%s\n", Week[now->tm_wday]);//星期几
}

void GetNextTime(int year, int mon, int day,int num)
{

struct tm now, tmp;
time_t t;

memset(&now, 0 , sizeof(struct tm));
memset(&tmp, 0 , sizeof(struct tm));

now.tm_year = year-1900; //指定年
now.tm_mon = mon -1;//指定月份
now.tm_mday = day + num; //指定是哪一天

t = mktime(&now);//转换成秒

struct tm *pNext = localtime(&t);

printf("%s\n", asctime(pNext));//哪一天
printf("%s\n", Week[pNext->tm_wday]);//星期几

}

void GetWeekDay(int year,int num)
{
time_t t;//存储需要计算时间距1900的秒数
struct tm test ;//填充这个结构

memset(&test, 0, sizeof(tm));//先清空下

test.tm_year = year - 1900;
test.tm_mday = num +1;

t = mktime(&test);// 转换成秒
struct tm *now = localtime(&t);//再转回tm

printf("%d\n", now->tm_yday);//第几天
printf("%s\n", Week[now->tm_wday]);//星期几
}


紧急悬赏:类似日历的C语言程序:输入4个天数,是从2000年1月1日起之后的...
我之前写过的,类似你的需求,供参考 include <stdio.h> include <string.h> include const char *Week[]= { "星期天","星期一","星期二","星期三","星期四","星期五","星期六"};if 0 struct tm { int tm_sec; \/* seconds after the minute - [0,59] *\/ int tm_min; ...

手机端的,能够支持日历形式管理日常工作的团队协作工具有哪些?求推荐...
1、敬业签是一款功能比较全面的桌面便签软件,分为个人便签和团队协作便签,在团队便签中所记录的内容,所有团签成员均可以一目了然的看到,管理者还可以根据自己的工作需求,将记录的内容设置指派模式,让指定的成员在指定的时间接收到提醒,而被指派者在完成任务之后,也可以将内容标记为已完成,所有的工...

[高分悬赏]Wow所有节日列表。
新年:一般是12月31日——1月1日 春节:一般是2月5日——2月24日 情人节:一般是2月11日——2月16日 儿童周:一般是5月1日——5月8日 仲夏烟火节:一般是6月21日——7月5日 竞争之魂:每两年一次的节日,估计2010年会有,时间参考08年那次估计是8月8日午夜——8月25日 收获节:一般...

高手帮忙把图下面的数字日历白框去掉 改好了一定给分
分太少,所以就处理成这样了,如果提高悬赏,再修改100%!付出与回报要成比例!

急求一个非常好笑的笑话,明天轮到我给同事讲笑话,不好笑有惩罚,要短一...
26.一只蜜蜂叮在挂历上==>风(蜂)和日丽(日历) 27.一只熊走过来==>有备而来(有bear来) 28.手机不可以掉到马桶里==>机不可失(湿) 29.有十只羊,九只蹲在羊圈==>抑扬顿挫(一羊蹲错) 30.怎样使麻雀安静下来?==>压它一下(鸦雀无声) ...

高分悬赏 2008~2011年日历 懂的帮帮小女,
2008.8.1-2011.12.31 一共40个月,23个31天,14个30天,3个28天,合计:1217天 08年是闰年2月是有29天的,你的时间是9月开始计起

绿原《给天真的乐观主义者们》的原文哪里找得到啊!感谢
日历撕完了,时钟停摆了,可爱的读者,向他们挑战! 四我是一个都会的流氓,没有受过良好教育。我的见闻和我的感想自然非常卑微。 在喧哗的马路上,我朦胧地看见许多刺客不说话,走着又停留着……呀,有人被杀死了,警察还十分客气地向凶手送去一根纸烟呢。 有一次,我走到一片广场上去了,那儿围着一群人,在赞叹...

急!高悬赏!《我的愿望》400字日记 写作指导与好的范文
(1)时光就像一条永不停息的小河,匆匆地、悄悄地从人们身边流过。不知不觉中,一个值得回忆的2006年匆匆地走了,迎来了一个新的岁月,开始了人们的又一段旅程。除夕夜,枕着迎接新年的鞭炮声睡着。“Happy new year!”次日清晨,随着一声新年的问候,我睁开了向2007年寻视的双眼。翻开日历,翻开了...

路过的都请看下^^^请问,福建各地有关风的俗语(悬赏添加中)
但是请客就要随意,不能计较。红柿好吃,从何起蒂:形容做人必须饮水思源。过时卖日历:错过机会了。歪头鸡想吃好米:形容为人自不量力。青瞑鸡啄到虫:形容运气好,瞎眼鸡也会啄到虫。吃碗内,洗碗外:骂人吃里扒外。西瓜靠大边:骂人势利。吐涎给鸡吃,鸡也死:比喻一个人倒霉。

所有积分高分悬赏,拜托大师们给个飞雪桌面日历2.85.1030注册码,我的机...
高分悬赏 高分悬赏

河西区18952777553: 紧急悬赏:类似日历的C语言程序:输入4个天数,是从2000年1月1日起之后的天数.然后输出对应的天数和星期 -
舟轰高锰: 我之前写过的,类似你的需求,供参考#include <stdio.h> #include <string.h> #include <time.h>const char *Week[]= {"星期天","星期一","星期二","星期三","星期四","星期五","星期六" };#if 0struct tm {int ...

河西区18952777553: C语言输出日历问题,比较急,高悬赏 -
舟轰高锰: #include<stdio.h>#include<stdlib.h> main() { void calendar(int month); int month,i=1; char flag; do{ printf("Enter month in 2010 to display calendar(1-12):"); scanf("%d",&month); if(!(month>0&&month<13)) {printf("ERROR-Enter month in ...

河西区18952777553: 求一个输入年月日,可以显示该月份日历的C语言程序! 求大神帮忙,谢谢! -
舟轰高锰: #include<stdio.h>/*得到所输入年月的第一天是星期几0~6*/ int getdate(int y,int m);/*判断所输入的是否是闰月,是则返回1,否则返回0*/ int leap(int y);/*打印输入月份月历表*/ void print(int y,int m);int main() {int y,m;printf("输入年份和月...

河西区18952777553: 求用C语言编写一个万年历,要求输入年月,输出相应月份的日历~ -
舟轰高锰: // aa.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<stdio.h> #include<stdlib.h> #include<time.h> #include<windows.h> #include<conio.h> #include<math.h> void tiangan(int x) {char a[][10]={"甲","乙","丙","...

河西区18952777553: 求c语言编写万年历,要求输入一个年份,会显示那一个年份的一到十二月,还包括星期几.会的大神求解 -
舟轰高锰: 我写过一个程序,输入日期能显示出是星期几,我把代码给你,你先给我采纳,我下午四点帮你写,现在没时间.//输入日期 能知道是星期几.#include<stdio.h> int run(int n,int y,int r);//润平年判断与计算函数,结果为,此日期为当年的第几天...

河西区18952777553: 【悬赏】程序编写,输入年月日和一个天数,再输出年月日,c语言 -
舟轰高锰: #include <stdio.h> int days[]={31,28,31,30,31,30,31,31,30,31,30,31}; int main() { int year , mon , day , num; printf("input yyyy/mm/dd:"); scanf("%d/%d/%d" , &year , &mon , &day );//请确保输入的数据是有效的日期,不然出错//根据年份确定...

河西区18952777553: 求电脑高手帮忙 编写程序 C语言 要求打印月历 能输入年份和月份 输出该月的月历包括星期 -
舟轰高锰: 之前回答过一次了:#include <stdio.h> int FirstDay(int, int); int LenOfMonth(int, int); int main() { short i, flagInput=0; int year, month;int day, weekday, daysOfMonth; do{if(flagInput==1) printf("\n——————————\nError! 您输入的年份和月份...

河西区18952777553: 编写程序要求当用户输入年份时能输出该年的日历,在日历上能够看出某天是星期几, -
舟轰高锰: C语言源程序: #include <stdio.h> long int f(int year,int month) {if(month<3) return year-1;else return year; } long int g(int month) {if(month<3) return month+13;else return month+1; } long int n(int year,int month,int day) {return 1461L*f(year,...

河西区18952777553: C语言程序,输入年月日算出当天星期几 -
舟轰高锰: #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;switc...

河西区18952777553: 求,编写一个日历的程序,用VC6.0...另外,要用大一的水平编写,再另外,必须原创,高分悬赏.
舟轰高锰: #include "stdio.h"void main(){ int a,b,c,d,e,f,i,j,k,n,m,year;printf("input the year:\n");scanf("%d",&year); //输入数据的初始化; b=year; c=year%4; d=year/4; e=d*1461+c*365; f=e%7; j=f; //初始化Year年的第一天的星期; m=j;printf("***...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网