c语言万年历查询程序代码,C语言实现万年历程序

本文实例为大家分享了C语言实现万年历程序,供大家参考,具体内容如下

#include

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

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

printf(" ");

while(begin<=days[i])

{

printf("%3d",begin);

begin++;

week=(week+1)%7;

if(week%7==0)

printf("\n");

}

printf("\n\n");

}

return 0;

}

a85b6eb75b0a2670260b270a018e8bcf.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2019-10-29

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个带有农历万年历功能的 C 语言程序代码示例: ```c #include <stdio.h> #include <stdlib.h> int get_weekday(int year, int month, int day) { if (month == 1 || month == 2) { month += 12; year--; } int c = year / 100; year %= 100; int week = year + year / 4 + c / 4 - 2 * c + 13 * (month + 1) / 5 + day - 1; week = (week % 7 + 7) % 7; return week; } int is_leap_year(int year) { return year % 4 == 0 && year % 100 != 0 || year % 400 == 0; } int get_month_days(int year, int month) { int days[] = {31, 28 + is_leap_year(year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; return days[month - 1]; } void print_calendar(int year, int month) { printf(" %d 年 %d 月\n", year, month); printf("日 一 二 三 四 五 六\n"); int weekday = get_weekday(year, month, 1); for (int i = 0; i < weekday; i++) { printf(" "); } int month_days = get_month_days(year, month); for (int i = 1; i <= month_days; i++) { printf("%2d ", i); if ((i + weekday) % 7 == 0) { printf("\n"); } } if ((month_days + weekday) % 7 != 0) { printf("\n"); } } void print_lunar_calendar(int year, int month, int day) { char *lunar_year[] = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十" }; char *lunar_month[] = { "正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "冬", "腊" }; char *lunar_day[] = { "初", "十", "廿", "三十" }; int lunar_month_days[] = { 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 29 }; int lunar_year_days = 0; for (int i = 1901; i < year; i++) { lunar_year_days += is_leap_year(i) ? 366 : 365; } for (int i = 1; i < month; i++) { lunar_year_days += lunar_month_days[i - 1]; } lunar_year_days += day - 1; int lunar_year_months[] = {0, 12}; int lunar_year_days_sum[] = {0, 383}; int lunar_month_days_sum = 0; for (int i = 0; i < 12; i++) { lunar_month_days_sum += lunar_month_days[i]; if (lunar_year_days_sum[0] + lunar_month_days_sum <= lunar_year_days) { lunar_year_months[0]++; lunar_year_days_sum[0] += lunar_month_days_sum; } if (lunar_year_days_sum[1] + lunar_month_days_sum <= lunar_year_days) { lunar_year_months[1]++; lunar_year_days_sum[1] += lunar_month_days_sum; } } int lunar_month = lunar_year_months[1] == 12 ? 1 : lunar_year_months[1] + 1; int lunar_day = lunar_year_days - lunar_year_days_sum[1] + 1; printf("农历:%s%s年%s月%s%s\n", lunar_year[year / 1000], lunar_year[year % 1000 / 100], lunar_month[lunar_month], lunar_day[lunar_day / 10], lunar_day[lunar_day % 10]); } int main() { int year, month, day; printf("请输入年份:"); scanf("%d", &year); printf("请输入月份:"); scanf("%d", &month); printf("请输入日期:"); scanf("%d", &day); print_calendar(year, month); print_lunar_calendar(year, month, day); return 0; } ``` 这个程序可以通过输入年份、月份和日期来打印出对应的公历和农历日历。其中,`get_weekday()` 函数用于计算某一天是星期几,`is_leap_year()` 函数用于判断某一年是否为闰年,`get_month_days()` 函数用于获取某一年某一月的天数,`print_calendar()` 函数用于打印公历日历,`print_lunar_calendar()` 函数用于打印农历日历。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值