只有一个源文件main函数
代码有点多,有好几处可以简短,但是你知道的我比较懒!
这个代码最主要的是
int w;
w = (day + 2 * month2 + 3 * (month2 + 1) / 5 + year2 + year2 / 4 - year2 / 100 + year2 / 400) % 7;/*基姆拉尔森计算公式*/ 这个公式
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int isleap(int year);/*判断闰年*/
int validdate(int, int, int);/*判断日期是否正确*/
int tianshu(int year, int mouth, int day);/*天数总和*/
int whatday();/*计算当年第几天*/
int date_difference();/*日期差*/
int year_difference(int, int, int, int, int, int);/*年份天数差*/
int month_difference(int, int, int, int, int);/*月份天数差*/
int day_difference(int, int);/*日天数差*/
int yeardays(int);/*该年有多少天*/
int calculation_date();/*推算日期*/
int datemuch(int, int, int, int, int, int);/*判断哪个日期大*/
int main(int argc, char* argv[])
{
while (1)
{
printf("----------------日期计算器-----------------\n");
printf("\t\t1.计算当年第几天\n");
printf("\t\t2.计算两个日期差\n");
printf("\t\t3.推算N天后日期\n");
printf("\t\t0.退出\n");
printf("请选择(0~~3选项):");
int option;/*接收选项*/
scanf("%d", &option);
switch (option)
{
case 1://printf("计算当年第几天");
whatday();
break;
case 2://printf("计算两个日期差");
date_difference();
break;
case 3://printf("推算N天后日期");
calculation_date();
break;
case 0:printf("谢谢使用!"); return 0;
default:printf("输入的选项有误,请重新输入!\n");
}
}
}
int isleap(int year)/*判断闰年*/
{
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
{
return 1;
}
return 0;
}
int validdate(int year, int month, int day)/*判断日期是否正确*/
{
if (month < 1 || month>12) {
printf("您输入的月份有误,应在(1~~12)之间!\n");
return 0;
}
switch (month) {
case 1: