for (i = 0; iweek; i++)//每月第一周前几天用空格填充
printf("");
int endDayOfMonth;//每个月的最后一天
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
endDayOfMonth = 31;
else if (month == 2)
{
if (isLeapYear(year))
endDayOfMonth = 29;
else
endDayOfMonth = 28;
}
else
endDayOfMonth = 30;
int dayOfMonth = 1;
//从一号循环到本月末
while (dayOfMonth = endDayOfMonth)
{
printf("%2d ", dayOfMonth);
dayOfMonth++;
//每输出完星期六的日期后就换行(对应周数起点是从week开始的,所以要在天数上加上week)
if ((dayOfMonth + week- 1) % 7 == 0)
printf("\n");
}
printf("\n");
return 0;
}
//判断闰年
bool isLeapYear(int y)
{
if (y % 4 == 0y % 100 != 0 || y % 400 == 0)
return true;
return false;
}
//获取某天是星期几返回值(0-7)
int getWeekDay(int y, int m, int d)
{
//计算星期几的固定公式,Y是年D是这个日期在本年的天数
//W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D
int days = d;
int i;
for (i = 1; im; i++)
{
if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12)
days += 31;
else if (i == 2)
{
if (isLeapYear(y))
days += 29;
else
days += 28;
}
else
days += 30;
}
int temp = y - 1 + (int)((y - 1) / 4) - (int)((y - 1) / 100) + (int)((y - 1) / 400) + days;
return temp % 7;
}
关于C语言用函数打印日历和c语言打印日历的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 禁止朋友看我抖音直播,抖音不让好友看直播怎么设置
- 隐藏投影机怎么装显卡,隐藏投影机怎么装显卡的
- linux进去终端命令,linux怎么进入终端模式
- 移动直播设备多少钱,移动直播设备全套都有什么
- java源代码输出 java代码输出语句
- 百度如何推广软文,百度怎么推广app
- vmware虚拟机镜像,vmware虚拟机镜像格式
- stem建筑经营游戏,建筑经营类游戏排行
- c语言解线性方程组函数 c++线性方程组求解