要求:模仿现实生活中的挂历。
当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几)。
当系统日期变到下一月时,系统自动翻页到下一月。
到底要C版本,还是C++版本啊
#include <stdio.h>
int year(int y)
{
if ((y%4==0) && (y%100!=0) || y%400==0)
return 366;
else
return 365;
}
int main()
{
int y;
int i,j,sum=0;
int begin,week;
int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d",&y);
for(i=1;i<y;i++)
sum+=year(i);
week=(sum+1)%7; //表示该年1月1日为星期几
if(year(y)==366)
days[1]=29;
printf("\n%d年日历如下:\n\n",y);
for(i=0;i<12;i++)
{
printf(" %d月 \n",i+1);
printf(" 7 1 2 3 4 5 6\n");
printf("=====================\n");
begin=1;
for(j=0;j<week;j++)
printf(" ");
while(begin<=days[i])
{
printf("%3d",begin);
begin++;
week=(week+1)%7;
if(week%7==0)
printf("\n");
}
printf("\n\n");
}
return 0;
}
#include <stdio.h>
int total_days = 0;//全局变量
int month_days = 0;//全局变量
int week_days = 0;//全局变量
int TotalDays(int year, int month)
{
int y, mon;
for (y = 1900; y < year; y++)//计算从1900年至今的所有年份的总天数
{
if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
{
total_days += 366;
}
else
{
total_days += 365;
}
}
for (mon = 1; mon < month; mon++)//加上从1月至所查询月份的总天数
{
if (mon == 2)//二月
{
if ((year % 4 == 0 && y % 100 != 0) || (year % 400 == 0))//闰年29天
{
total_days += 29;
}
else
{
total_days += 28;
}
}
else if (mon == 4 || mon == 6 || mon == 9 || mon == 11)//每月有30天的月份
{
total_days += 30;
}
else//每月有31天的月份
{
total_days += 31;
}
}
}
int WeekDay()//判断所查询月份的第一天是星期几
{
total_days += 1;
week_days = total_days % 7;
}
int MonthDays(int year, int month)//判断当月共有多少天
{
if (month == 2)
{
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
{
month_days = 29;
}
else
{
month_days = 28;
}
}
else if (month == 4 || month == 6 || month == 9 || month == 11)
{
month_days = 30;
}
else
{
month_days = 31;
}
}
void print()//打印信息
{
int i;
printf("日 一 二 三 四 五 六\n");
for(i = 1; i <= week_days; i++)
{
printf(" ");
}
int k;
for(k = 1; k <= month_days; k++)
{
if(total_days % 7 == 6)
{
printf("%2d\n", k);
}
else
{
printf("%2d ", k);
}
total_days++;
}
printf("\n\n");
}
int main()
{
int year=0, month=0;
system("clear");
printf("请输入查询时间: 年 月\n");
system("tput cup 0 16");
scanf("%d", &year);
system("tput cup 0 24");
scanf("%d", &month);
printf("\n");
TotalDays(year, month);
WeekDay(year, month);
MonthDays(year, month);
print();
return 0;
}
如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢
使用Calender对象实现,在进行页面格式化展示。