当前位置:网站首页>"Array" look-up table method (leap year)
"Array" look-up table method (leap year)
2022-08-02 16:03:00 【white U】
一维数组 【以空间换时间】
define MONTHERROR -1
#define YEARERROR -2
#define DAYERROR -3
bool Leap_Year(int year)
{
bool res = false;
if ((year % 100 != 0 && year % 4 == 0) || year % 400 == 0)
{
res = true;
}
return res;
}
int Get_YM_Day(int year, int month)
{
//空间换时间 static Let their survival period longer,在数据区,const Let it do not change,Ability to get smaller.
//查表法
static const int days[] = {
29,31,28,31,30,31,30,31,31,30,31,30,31 };
if (month == 2 && Leap_Year(year))
{
month = 0;
}
return days[month];
}
int Get_YMD_Total(int year, int month, int day)
{
int sum = 0;
// int da = 0;
//查表法:static const int sum[] = {0, 0 , 31,59,90,120,151,181,212,243,273,304,334,365};
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13
//The total number of days are the current digital and input the number of days.
if (year < 1) return YEARERROR;
if (month < 1 || month>12) return MONTHERROR;
if (day<1 || day>Get_YM_Day(year, month)) return DAYERROR;
/* if (month>2&& Leap_Year(year,month)) { //如果月份大于2 ,So to judge whether a leap year,如果小于2就没必要了 da =1; */ }
for (int i = 0; i < month; i++)
{
sum = sum + Get_YM_Day(year, i);
}
return sum + day;
// return sum + day + da ;
}
int main()
{
int year = 0, month = 0, day = 0;
scanf_s("%d/%d/%d", &year, &month, &day);
int n = Get_YMD_Total(year, month, day);
printf("%d/%d/%d=>total: %d\n", year, month, day, n);
// Crossing the line and input wrong judgment
switch (n)
{
case YEARERROR:
printf("year input error %d\n", year);
break;
case MONTHERROR:
printf("month input error %d\n",month);
break;
case DAYERROR:
printf("day input error %d\n", day);
break;
default:
printf("%d year %d month %d day\n", year,month,day);
break;
}
return 0;
}
边栏推荐
猜你喜欢
随机推荐
LeetCode 2343. 裁剪数字后查询第 K 小的数字 暴力+语法考察
CDH (computational Diffie-Hellman) problem and its differences with discrete logarithm and DDH problems
Run ns3 with multiple processes
第二十八章:解题技巧
Qt | 定时器的使用 QTimer
px和em和rem的区别
光波导k域布局可视化(“神奇的圆环”)
Unity插件-NGUI
unity Domain Reload & scene Reload 静态变量重置
HCIE学习记录——数通网络基础
HCIE学习记录——OSI参考模型
Oauth2.0 安全性(以微信授权登陆为例)
【线程】 理解线程(并行)线程同步的处理(信号量,互斥锁,读写锁,条件变量)
指针/【类型】对指针加一能力的影响(&*ip ,*&ipd)
消息队列的技术选型
HCIE学习记录——数据封装与常用协议(TCP/UDP)
光波导的入射耦合和出射耦合区域
【线程安全】用户级,内核级,组合级线程|线程同步的处理(条件变量)|strtok_r(可冲入函数)
记一次 ThreadLocal 泄漏导致的 shardingsphere-jdbc-core 单元测试偶发失败的排查与修复
排序方法汇总(C语言)









