已知2000年1月1日为星期六,按“year-month”的格式输入2000年1月以后的任意年月,并按日历样式打印输出对应年月的日历。

【输入】

489e7284b94f498289db21c3ea9e2191.png

【输出】

d5d8473b0b3c45cea49efbca3505ddf1.png


1、先编写2000年以后每年一月一日星期几

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	int year=0, month=0;//year:年; month:月;
	int year1 = 2000, momth1 = 1, week= 6; //已知2000年1月1日为星期六; week:星期;
	int i, j;//用于循环
	scanf("%d-%d",&year,&month);//输入年月格式 year-month;
	for(;year1<year; year1++)
	{
		if ((year1 % 4 == 0 && year1 % 100 != 0) || year1 % 400 == 0)//判断是否为闰年
			week += 2;
		else
			week++;
		if (week / 8)
			week = week % 7;
	}
	printf("%d", week);
	return 0;
}

2721374787644286959ae275b2991be2.png

测试成功,继续下一步


2、升级程序算出每月第一日是星期几

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	int year=0, month=0;//year:年; month:月;
	int year1 = 2000, month1 = 1, week= 6; //已知2000年1月1日为星期六; week:星期;
	int i, j;//用于循环
	scanf("%d-%d",&year,&month);//输入年月格式 year-month;
	for(;year1<year; year1++)
	{
		if ((year1 % 4 == 0 && year1 % 100 != 0) || year1 % 400 == 0)//判断是否为闰年
			week += 2;
		else
			week++;
		if (week / 8)
			week = week % 7;
	}
	for (i = 1; i < month; i++)
	{
		if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10)//这些月份有31天
		{
			week += 31;
			for (; week > 7; week -= 7);
		}
		else if(i==2)
		{
			if ((year % 4 == 0 && year % 100 != 0) || year% 400 == 0)//闰年二月29天,非闰年二月有28天
			{
				week += 29;
				for (; week > 7; week -= 7);
			}
			else
			{
				week += 28;
				for (; week > 7; week -= 7);
			}
		}
		else//剩下三,四,六,九,十一月每月有30天
		{
			week += 30;
			for (; week > 7; week -= 7);
		}
	}
	printf("%d", week);
	return 0;
}

5f027c51c5a941c597c96f24866bde6c.png

成功!

3、开始打印该年该月的每日是星期几

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	int year=0, month=0;//year:年; month:月;
	int year1 = 2000, month1 = 1, week= 6,fate; //已知2000年1月1日为星期六; week:星期; fate:天数
	int i, j,k;//用于循环
	scanf("%d-%d",&year,&month);//输入年月格式 year-month;
	for(;year1<year; year1++)
	{
		if ((year1 % 4 == 0 && year1 % 100 != 0) || year1 % 400 == 0)//判断是否为闰年
			week += 2;
		else
			week++;
		if (week / 8)
			week = week % 7;
	}
	for (i = 1; i < month; i++)
	{
		if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10)//这些月份有31天
		{
			week += 31;
			for (; week > 7; week -= 7);
		}
		else if(i==2)
		{
			if ((year % 4 == 0 && year % 100 != 0) || year% 400 == 0)//闰年二月29天,非闰年二月有28天
			{
				week += 29;
				for (; week > 7; week -= 7);
			}
			else
			{
				week += 28;
				for (; week > 7; week -= 7);
			}
		}
		else//剩下三,四,六,九,十一月每月有30天
		{
			week += 30;
			for (; week > 7; week -= 7);
		}
	}
	if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10)
		fate= 31;
	else if (month == 2)
	{
		if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
			fate= 29;
		else
			fate= 28;
	}
	else fate= 30;
	printf("一\t二\t三\t四\t五\t六\t日\n");
	for (k = 1; k < week; k++)
		printf("  \t");
	for (j=1; j<=fate; j++)
	{
		
		printf("%-2d", j);
		week++;
		if (week > 7)
		{
			week = week - 7;
			printf("\n");
		}
		else
			printf("\t");
	}
	return 0;
}

10de024bd85a42f7bdeef682558d8cda.png

 

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 01:08:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 01:08:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 01:08:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 01:08:02       20 阅读

热门阅读

  1. backtracking Leetcode 回溯算法题

    2024-04-23 01:08:02       12 阅读
  2. Linux文本处理三剑客:awk、grep和sed

    2024-04-23 01:08:02       15 阅读
  3. js高级 笔记03

    2024-04-23 01:08:02       11 阅读
  4. FastJson的使用

    2024-04-23 01:08:02       13 阅读
  5. 【程序设计与算法——C/C++入门】C语言入门

    2024-04-23 01:08:02       17 阅读
  6. 37-4 用Python编写SQL注入的基于错误报告的POC

    2024-04-23 01:08:02       14 阅读
  7. 12.Vue2.x收集表单数据input | v-model | select

    2024-04-23 01:08:02       13 阅读