日历功能——C语言

实现日历功能,输入年份月份,输出日历

c 复制代码
#include<stdio.h>

int leap_year(int year)
{
	if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
	{
		return 1;
	}else
	{
		return 0;
	}
}

int determine_year_month_day(int *day,int month,int year)
{
	if(month != 2)
	{
		return day[month - 1];
	}else
	{
		return 28 + leap_year(year);
	}
}

int date_of_1900(int month,int year,int *day)
{
	int i,j;
	int sum = 0;
	for(i = 1900;i < year;++i)
	{
		if(leap_year(i) == 1)
		{
			sum += 366;
		}else if(leap_year(i) == 0)
		{
			sum += 365;
		}
	}

	for(j = 1;j < month;++j)
	{
		sum += determine_year_month_day(day,j,i);
	}
	return sum;
}

int printf_calendar(int month,int year,int *day)
{
	int i,j,max;
	max = determine_year_month_day(day,month,year);
	printf("       %d月      %d年       \n",month,year);
	printf("  一  二  三  四  五  六  日\n");
	int min = date_of_1900(month,year,day) % 7;
	for(j = min;j > 0;--j)
	{
		printf("    ");
	}

	for(i = 1;i <= max;++i)
	{
		printf("%4d",i);
		if((i+min) % 7 == 0)
		{
			putchar('\n');
		}
	}
}

int main(void)
{
	int year,month;
	int day[] = {31,28,31,30,31,30,31,31,30,31,30,31};
	printf("Please enter the year and month you want to query:");
	scanf("%d %d",&year,&month);
	if(month > 12 || month < 1)
	{
		printf("Input Error!\n");
	}
	printf_calendar(month,year,day);
	putchar('\n');
	return 0;
}

实现的结果如图所示:

相关推荐
科雷软件测试4 小时前
Python中itertools.product:快速生成笛卡尔积
开发语言·python
OOJO5 小时前
c++---list介绍
c语言·开发语言·数据结构·c++·算法·list
笨笨饿7 小时前
29_Z变换在工程中的实际意义
c语言·开发语言·人工智能·单片机·mcu·算法·机器人
艾为电子7 小时前
【技术帖】让接口不再短命:艾为 C-Shielding™ Type-C智能水汽防护技术解析
c语言·开发语言
棉花骑士7 小时前
【AI Agent】面向 Java 工程师的Claude Code Harness 学习指南
java·开发语言
IGAn CTOU7 小时前
PHP使用Redis实战实录2:Redis扩展方法和PHP连接Redis的多种方案
开发语言·redis·php
爱敲代码的小鱼8 小时前
springboot(2)从基础到项目创建:
java·spring boot·spring
环黄金线HHJX.8 小时前
TSE框架配置与部署详解
开发语言·python
Vfw3VsDKo8 小时前
Maui 实践:Go 接口以类型之名,给 runtime 传递方法参数
开发语言·后端·golang
Pyeako8 小时前
PyQt5 + PaddleOCR实战:打造桌面级实时文字识别工具
开发语言·人工智能·python·qt·paddleocr·pyqt5