ADD file via upload

main
p78gniqao 1 year ago
parent 0724e3c570
commit 2f1e147adb

220
wudi.h

@ -0,0 +1,220 @@
#include "yxt.h"
int getWeekDay(int year, int month, int day);
int daysBetweenGivenDateAndNow(int year,int month,int day);
int dijitian(int year,int month,int day);
int isLeapYear(int year);
int getDaysInMonth(int year, int month);
int calculateTotalDays(int year, int month, int day);
void wang(int year,int month,int day)
{
int result ;
result = isHoliday(year, month, day);
switch (result)
{
case 1:
printf("元旦\n");
break;
case 2:
printf("中国人民警察节\n");
break;
case 3:
printf("妇女节\n");
break;
case 4:
printf("植树节\n");
break;
case 5:
printf("清明节\n");
break;
case 6:
printf("劳动节\n");
break;
case 7:
printf("青年节\n");
break;
case 8:
printf("护士节\n");
break;
case 9:
printf("全国科技工作者日\n");
break;
case 10:
printf("儿童节\n");
break;
case 11:
printf("中国人民解放军建军节\n");
break;
case 12:
printf("中国医师节\n");
break;
case 13:
printf("教师节\n");
break;
case 14:
printf("国庆节\n");
break;
case 15:
printf("记者节\n");
break;
case 16:
printf("二七纪念日\n");
break;
case 17:
printf("全民国家安全教育日\n");
break;
case 18:
printf("中国航天日\n");
break;
case 19:
printf("中国品牌日\n");
break;
case 20:
printf("全民防灾减灾日\n");
break;
case 21:
printf("中国旅游日\n");
break;
case 22:
printf("中国助残日\n");
break;
case 23:
printf("五州纪念日\n");
break;
case 24:
printf("环境日\n");
break;
case 25:
printf("文化和自然遗产日\n");
break;
case 26:
printf("全国土地日\n");
break;
case 27:
printf("七七抗战纪念日\n");
break;
case 28:
printf("中国航海日\n");
break;
case 29:
printf("全名健身日\n");
break;
case 30:
printf("全民生态日\n");
break;
case 31:
printf("残疾预防日\n");
break;
case 32:
printf("中国人民抗日战争胜利纪念日\n");
break;
case 33:
printf("中华慈善日\n");
break;
case 34:
printf("九一八纪念日\n");
break;
case 35:
printf("全民国防教育日\n");
break;
case 36:
printf("烈士纪念日\n");
break;
case 37:
printf("国家扶贫日\n");
break;
case 38:
printf("全国交通安全日\n");
break;
case 39:
printf("国家宪法日和全国法制宣传日\n");
break;
case 41:
printf("南京大屠杀死难者国家公祭日\n");
break;
case 42:
printf("圣诞节\n");
break;
case 0:
printf("该日期不是节假日\n");
break;
default:
printf("未知的节日\n");
break;
}
}
int dijitian(int year,int month,int day)
{
int a[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int sumdays = 0;
//判断是否为闰年
if ((year % 4 == 0 && year % 100!= 0) || year % 400 == 0) {
a[1] = 29;
}
// 检查输入的日期是否合法
if (month < 1 || month > 12 || day < 1 || (day >a[month - 1])) {
printf("输入的日期不合法\n");
return -1;
}
// 计算总天数
int i=0;
while( i < month - 1)
{
sumdays += a[i];
i++;
}
printf("%d年%d月%d日是该年的第%d天。\n", year, month, day, sumdays);
return sumdays;
}
// 判断是否为闰年闰年返回1平年返回0
int isLeapYear(int year) {
return ((year % 4 == 0 && year % 100!= 0) || year % 400 == 0);
}
// 获取对应月份的天数
int getDaysInMonth(int year, int month) {
int days[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (month == 2 && isLeapYear(year)) {
return 29;
}
return days[month];
}
// 计算从公元1年1月1日到给定日期的总天数
int calculateTotalDays(int year, int month, int day) {
int totalDays = 0;
int y,m;
for ( y = 1; y < year; y++) {
totalDays += isLeapYear(y)? 366 : 365;
}
for ( m = 1; m < month; m++) {
totalDays += getDaysInMonth(year, m);
}
totalDays += day;
return totalDays;
}
// 计算给定日期与当前日期的天数差
int daysBetweenGivenDateAndNow(int year, int month, int day) {
time_t currentTime;
struct tm* currentDate;
time(&currentTime);
currentDate = localtime(&currentTime);
int currentYear = currentDate->tm_year + 1900;
int currentMonth = currentDate->tm_mon + 1;
int currentDay = currentDate->tm_mday;
int totalDaysGiven = calculateTotalDays(year, month, day);
int totalDaysCurrent = calculateTotalDays(currentYear, currentMonth, currentDay);
return totalDaysCurrent - totalDaysGiven;
}
Loading…
Cancel
Save