日历显示:输入任一年将显示出该年的所有月份日期,对应的星期 用C语言编程

1)月份:用中文显示,
2)下一行显示星期,从周日到周六,中英文都可以
3)下一行开始显示日期从1号开始,并按其是周几实际情况与上面的星期数垂直对齐
用最简单的C语言.... 我是超级菜鸟,最好有解释的 ,在线等,急 ...

第1个回答  2013-05-17
#include<stdio.h>
int main()
{
inti=0,m=0,k=1,leap=1973,year,f=0,week,r,p=2,g=2,flag;
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};//月份终止
int b[12]={0,3,3,6,1,4,6,2,5,0,3,5};//控制周换行1973初始值
int c[12]={};
void space(int);
printf("请输入年份(1973年以后):\n");
scanf("%d",&year);
while(leap<year)
{
leap=leap+1;
if(leap%4==0&&leap%100!=0)flag=0;
elseif(leap%400==0&&leap%100==0)flag=0;
else {flag=1;f++;}
}
r=year-1973-f;
printf("\n");
if(flag==1){c[0]=(b[0]+2*r+f)%7;c[1]=(b[1]+2*r+f)%7;}
if(flag==0){(c[0]=(b[0]+2*(r-1)+f)%7+1)%7;c[1]=((b[1]+2*(r-1)+f)%7+1)%7;}
while(g<12)
{
c[p]=(b[g]+2*r+f)%7;
p++;g++;
}
if(year%4==0&&year%100!=0)a[1]=29;
elseif(year%400==0&&year%100==0)a[1]=29;
else a[1]=28;
while(k<13)
{
space(10);
printf("%d月\n",k);
printf("一二三四五六日\n");
space(3*c[m]+1);//周前空格与周换行正比
while(i<a[m])
{
i++;
if(i<10)printf("%d",i);
if(i>=10)printf("%d ",i);
if((i+c[m])%7==0)printf("\n");
}
m++;
i=0;
k++;
printf("\n");
}
getchar();
getchar();
}
void space(int x)
{
int i;
for(i=1;i<x;i++)printf("");
}追问

这个现实是怎么显示的? 不是两个月并排这显示的吧,两个月并排现实的怎么做?

日历显示:输入任一年将显示出该年的所有月份日期,对应的星期 用C...
int main(){ inti=0,m=0,k=1,leap=1973,year,f=0,week,r,p=2,g=2,flag;int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};\/\/月份终止 int b[12]={0,3,3,6,1,4,6,2,5,0,3,5};\/\/控制周换行1973初始值 int c[12]={};void space(int);printf("请输入年份(1...

...1)输入任一年将显示出该年的所有月份日期,对应的
i = Year_days % 7; \/\/每个星期有7天, 故用每年的天数对7取余

\/\/输入任一年将显示出该年的所有月份日期,对应的星期 \/\/注意润年...
using namespace std;\/*得到所输入年月的第一天是星期几0~6*\/ int getdate(int y,int m);\/*判断所输入的是否是闰月,是则返回1,否则返回0*\/ int leap(int y);\/*打印输入月份月历表*\/ void print(int y,int m);int main(){ int y;cout<<"输入年份:"; \/\/这句话不想要可以删掉,...

急!~~~用C或者C++编写 打印万年历 的程序 要求如下
(1) 读取系统时钟,计算与日期相关的信息,首先打印出当月的月历,在当月月历的最下方也下列两行方式显示与当前有关的信息:今天是: 2005年12月20日,星期二当前时间是:22时40分43秒(2) 输入任意年号能得到指定年的年历(万年历)。(3) 将屏幕上显示的月历和年历均存为文本文件以便今后读取。 (4) 按每行两个月...

...1月1日为星期六,请输入任一年的年份后,打印该年的年历" 怎么设计啊...
printf("\\n请输入某年1月1日:");scanf("%d",&weekday);\/*因为你的要求是已知2000年1月1日是星期六,所以这里不用week_of_newyears_day去求星期六了*\/ \/*weekday = week_of_newyears_day(year); 求元旦是星期几 *\/ printf("\\n\\n\\n %d年\\n",year); \/* 打印年份 *\/ ...

稀疏矩阵的操作
1)输入任一年将显示出该年的所有月份日期,对应的星期 其显示格式要求如下:其 Compress[][3]这个称为三元组,他是一个含有多行的只有三列的矩阵,其中第0行数据分别表示该稀疏矩阵的行数,列数和非零元素个数。以后每行表示一个非零元素的行数,列数和非零元素值,如:第3行中的2,4,4...

五分钟,做一个Excel版的简易日历
在D2单元格输入公式:=TEXT(A2,"aaaa"),计算A列日期是星期几。双击D2单元格右下角填充此公式,即可显示每一行日期对应的星期。接下来,我们计算A列日期在一年中的周数,在E2单元格输入公式:=WEEKNUM(A2,1),双击E2单元格右下角填充此公式,即可计算出每一行日期对应的周数。插入数据透视表:...

WPS表使用公式来查找任何年份和月份的日历
1.在单元格A1(或其他单元格)中随意输入日期,如2009年11月9日;2.选择A1:G1区域,然后点击工具栏中的“合并单元格”,合并并显示中间区域;3.选择A2:G2,并输入以下数组公式:={ ‘太阳’,’星期一’,’星期二’,’星期三’,’星期四’,’ Fri ‘,’星期六’ } 您也可以改用汉字:...

电子表格里所有的函数公式?
应用举例:在C11单元格中输入公式:=COLUMN(B11),确认后显示为2(即B列)。 特别提醒:如果在B11单元格中输入公式:=COLUMN(),也显示出2;与之相对应的还有一个返回行标号值的函数——ROW(reference)。5、CONCATENATE函数 函数名称:CONCATENATE 主要功能:将多个字符文本或单元格中的数据连接在一起,显示在一个单元格...

SQL SERVER查询时间是一年中第几周的函数
SQL SERVER查询时间是一年中第几周,使用函数 datepart()。例:查询 ‘2017-1-1’是2017年的第几周,语句如下 select datepart(wk,'2017-1-1')datepart函数说明 一、函数功能:DATEPART() 函数用于返回日期\/时间的单独部分,比如年、月、日、小时、分钟等等。二、语法:DATEPART(datepart,date)三、...

相似回答