/* * cal.c * * Created on: 2013-3-11 * Author: J.WANG */ #include <stdlib.h> #include <stdio.h> //三维数组存放日期,每年12月,日历中最多排6行(星期),每星期7天 int days[12][6][7]; //平年,闰年每个月的天数 int ds[2][12] = { { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } }; //标题 char title[] = "SUM MON TUE WED THU FRI SAT"; //月份 int m[4][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } }; //月份 char mt[][4] = { "JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC" }; //根据蔡勒公式计算日期星期几 int wd(int year, int m, int d) { int c, y, w; if (m <= 2) { year--; m += 12; } c = year / 100; y = year % 100; w = (c / 4 - 2 * c + y + y / 4 + 13 * (m + 1) / 5 + d - 1); return (w % 7 + 7) % 7; } //闰年平年 int leapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } int main() { int i, j, k, leap, fd,year; scanf("%d%*c",&year); //初始三维数组为0 //days[12][6][7]={0}; for (i = 0; i < 12; i++) { for (j = 0; j < 6; j++) { for (k = 0; k < 7; k++) { days[i][j][k] = 0; } } } fd = wd(year, 1, 1); leap = leapYear(year); //三维数组赋值 for (i = 0; i < 12; i++) { for (k = 0, j = 1; j <= ds[leap][i]; j++) { days[i][k][fd] = j; fd = (++fd) % 7; if (fd == 0) { k++; } } } //输出数据 for (i = 0; i < 4; i++) { printf(" %13s %27s %27s \n", mt[m[i][0] - 1], mt[m[i][1] - 1], mt[m[i][2] - 1]); printf(" %s %s %s \n", title, title, title); for (j = 0; j < 6; j++) { //1,4,7 for (k = 0; k < 7; k++) { if (days[m[i][0] - 1][j][k]) printf("%4d", days[m[i][0] - 1][j][k]); else printf(" "); } printf(" "); //2,5,8 for (k = 0; k < 7; k++) { if (days[m[i][1] - 1][j][k]) printf("%4d", days[m[i][1] - 1][j][k]); else printf(" "); } printf(" "); //3,6,9 for (k = 0; k < 7; k++) { if (days[m[i][2] - 1][j][k]) printf("%4d", days[m[i][2] - 1][j][k]); else printf(" "); } printf("\n"); } } return 0; }
打印格式:
相关推荐
单片机c语言万年历程序 LCD显示 #define uint unsigned int #define uchar unsigned char sbit DS1302_CLK = P3^6; //实时时钟时钟线引脚 sbit DS1302_IO = P3^7; //实时时钟数据线引脚 sbit DS1302_RST = P1^4...
《C语言实现万年历:农历、节日与星期算法详解》 在计算机编程领域,C语言因其高效、灵活和广泛的应用而备受青睐。本项目利用C语言开发了一款功能丰富的万年历程序,涵盖了农历、星期计算以及节日显示等多个方面。...
### C语言万年历系统简单版 #### 一、项目概述 本项目是一个基于C语言编写的简单万年历程序,旨在帮助用户查询特定日期是星期几,以及展示指定月份或整年的日历视图。该程序对于C语言初学者来说具有较高的学习价值...
这篇文档是关于一个基于C语言编写的万年历课程设计报告。这个系统包含了多项功能,主要涉及日期查询、月历显示以及整年日历的打印。下面将详细阐述这些功能和设计思路。 首先,系统的核心功能之一是闰年判断。根据...
这里提到的“c语言万年历”是一个使用C语言编写的程序,可以显示从公元1年到公元9999年的日期信息,涵盖了所谓的“万年”的时间范围。这个程序依赖于特定的日历数据来计算和展示日期。 首先,我们来讨论“wnl.csv”...
不错的c语言万年历例子,初学者可以研究下。
本程序利用C语言输出包含农历和阳历的日历,农历显示在阳历下方。此外还可以打印年历,星座查询、历史上的今天等功能。
C语言万年历课程设计 本课程设计的主要目的是设计一个使用C语言编写的万年历系统,实现查看月日历和年日历的功能。下面是该课程设计的详细知识点解释: 一、函数设计 1. `menu()` 函数:该函数用于显示菜单选项,...
【C语言万年历系统】是一种基于纯C语言编写的日历程序,它具备了输出任意年份全年的12个月历以及判断平闰年、特定月份月历和查询特定日期节日的功能。这个系统展示了C语言在处理日期计算和用户交互方面的强大能力。 ...
### C语言万年历知识点解析 #### 一、程序功能概述 本程序为一个基于C语言编写的万年历程序,其主要功能是根据用户输入的年份来显示该年的两个半年的日历视图。具体而言,用户输入年份后,程序会计算并输出当年上...
本文将详细介绍如何使用C语言编写一个万年历程序,以实现输入年份和月份后打印对应月份的日历。 首先,我们需要知道年份是否为闰年,以便确定二月的天数。闰年的判断规则是:如果年份能被4整除但不能被100整除,...
根据给定的C语言万年历程序的代码和描述,我们可以从中提炼出多个重要的IT知识点,尤其是关于日期计算、逻辑处理以及用户交互方面的知识。以下是对这些知识点的详细解析: ### 1. 闰年判断与日历年份的天数计算 在...
【标题】:“C语言万年历源码” 这个标题表明我们正在讨论的是一个用C语言编写的万年历程序的源代码。C语言是一种基础且强大的编程语言,它以其高效、简洁和灵活性著称,是许多系统级和嵌入式开发的首选语言。...
《C语言实现的万年历查询系统详解》 在计算机编程领域,C语言以其高效、灵活和广泛的适用性,一直是程序员们的首选语言之一。而利用C语言开发的万年历查询系统,则是将古老的历法知识与现代技术相结合的一个实例。...
**C语言万年历源码** 本资源提供了一个基于C语言的万年历程序源码,适用于学习、研究...总之,本C语言万年历源码是一个功能丰富、易于定制的实用工具,适合C语言学习者、研究者以及需要进行日历功能开发的开发者使用。
【C语言万年历程序代码】是一个在Visual C++(简称VC)环境下开发的应用程序,其主要目的是实现一个功能完善的万年历。这个程序能够帮助用户查询任何年份、月份及日期的相关信息,同时提供了友好的用户界面,使得...
【标题】:“C语言万年历源码” 这个标题揭示了我们要探讨的是一个用C语言编写的万年历程序的源代码。C语言是一种基础且强大的编程语言,它以其高效、简洁和灵活性著称,是许多系统级和嵌入式应用的基础。万年历则...