#include int leap (int year) {if(year%4==0&&year%100!=0||year%400==0) return 1; else return 0; } int days_month (int month,int year) { if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) return 31; if(month==4||month==6||month==9||month==11) return 30; if(month==2&&leap(year)==1) return 29; else return 28; } int firstday(int month,int year) {int w; w=(1+2*month+3*(month+1)/5+year+year/4+year/400-year/100)%7+1; return w; } main() {int i,j=1,k=1,a,b,month,year; printf("\n input month and year:\n"); scanf("%d%d",&month,&year); b=days_month(month,year); a=firstday (month,year); printf(" Sun Mon Tue Wed Thu Fri Sat \n"); if(a==7) {for(i=1;i<=b;i++) {printf("%4d",i); if(i%7==0) {printf("\n"); } } } if(a!=7) {while (j<=4*a) {printf(" "); j++; } for(i=1;i<=b;i++) {printf("%4d",i); if(i==7*k-a) {printf("\n"); k++; } } } getch();好多塞你试试这个,不过没有农历节气和农历年月日 using system; using system.collections.generic; using system.text; namespace year { class program { static void main(string[] args) { console.writeline("*************************欢迎使用万年历*************************\n\n"); console.write("请选择年份:\t"); int year = int.parse(console.readline()); console.write("\n请选择月份\t"); int month = int.parse(console.readline()); bool w; if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { w = true; } else { w = false; } int day = 0; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: day = 31; break; case 4: case 6: case 9: case 11: day = 30; break; case 2: if (w == true) { day = 29; } else { day = 28; } break; } int b = 0; for (int i = 1900; i < year; i++) { if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { b = b + 366; } else { b = b + 365; } } for (int i = 1; i < month; i++) { switch (i) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: b = b + 31; break; case 4: case 6: case 9: case 11: b = b + 30; break; case 2: if (w == true) { b = b + 29; } else { b = b + 28; } break; } } int fristdayofmonth = 1 + b % 7; if (fristdayofmonth == 7) { fristdayofmonth = 0; } console.writeline("\n\n星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六"); for (int i = 0; i < fristdayofmonth; i++) { console.write("\t"); } for (int i = 1; i <= day; i++) { console.write("\t",i); if ((fristdayofmonth + i) % 7 == 0) { console.writeline(); } } console.readline(); } } 这是用java编写的 }
4,编写一个万年历程序
你试试这个,不过没有农历节气和农历年月日
using System;
using System.Collections.Generic;
using System.Text;
namespace Year
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("*************************欢迎使用万年历*************************\n\n");
Console.Write("请选择年份:\t");
int year = int.Parse(Console.ReadLine());
Console.Write("\n请选择月份\t");
int month = int.Parse(Console.ReadLine());
bool w;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
w = true;
}
else
{
w = false;
}
int day = 0;
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
if (w == true)
{
day = 29;
}
else
{
day = 28;
}
break;
}
int b = 0;
for (int i = 1900; i < year; i++)
{
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
{
b = b + 366;
}
else
{
b = b + 365;
}
}
for (int i = 1; i < month; i++)
{
switch (i)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
b = b + 31;
break;
case 4:
case 6:
case 9:
case 11:
b = b + 30;
break;
case 2:
if (w == true)
{
b = b + 29;
}
else
{
b = b + 28;
}
break;
}
}
int fristDayOfMonth = 1 + b % 7;
if (fristDayOfMonth == 7)
{
fristDayOfMonth = 0;
}
Console.WriteLine("\n\n星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
for (int i = 0; i < fristDayOfMonth; i++)
{
Console.Write("\t");
}
for (int i = 1; i <= day; i++)
{
Console.Write("\t",i);
if ((fristDayOfMonth + i) % 7 == 0)
{
Console.WriteLine();
}
}
Console.ReadLine();
}
}
这是用java编写的 }