万年历算法的实现(4)

2019-04-22 22:11

int days = 0; switch (month) { case 1:

days = day; break; case 2:

days = 31 + day; break; case 3:

days = 59 + day; break; case 4:

days = 90 + day; break; case 5:

days = 120 + day; break; case 6:

days = 151 + day; break; case 7:

days = 181 + day; break; case 8:

days = 212 + day; break; case 9:

days = 243 + day; break; case 10:

days = 273 + day; break; case 11:

days = 304 + day; break; case 12:

days = 334 + day; break; default: break; }

if (year < 1753 && year % 4 == 0) { if (month > 2) { ++days; }

} else if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { if (month > 2) { ++days; }

}

return days; } /*

* 以下函数判断一个字符串是否能被转换成数字 */

int IsNum(char *argv) { while (*argv != '\\0') {

if (*argv >= 48 && *argv <= 57) { argv++; continue; }

return 0; }

return 1; } /*

*以下函数判断输入的参数是否合法 */

int IsLegalParameter(int argc, char **argv) { if (argc == 1) {

return 0; //0表示没有输入参数 }

while (argc > 1) {

if (!IsNum(*(argv + --argc))) {

return -1; //-1表示输入的参数不合法 } }

return 1; //1表示输入了参数,并且参数是合法的 } /**

* 以下函数将一个字符串转换成数字。 */

long StrToLong(char *argv) { if (!IsNum(argv)) { return 0; }

long result = 0;

int argvLength = strlen(argv); int nums[argvLength - 1]; int *pInt = nums;

do {

*(pInt++) = *argv - 48; argv++;

} while (*argv != '\\0');

pInt = nums;

do {

result += *pInt * Power(10, argvLength - 1); pInt++;

argvLength--;

} while (argvLength != 0); return result; } /*

* According to the base number and the exponent calculate power. * 根据基数和指数,计算出乘方数。 */

long Power(int baseNumber, int exponent) { long result = 1;

if (exponent == 0) { return 1; } do {

result *= baseNumber; exponent--;

} while (exponent != 0); return result; }


万年历算法的实现(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:珠海农用无人机统防统治植保作业工作方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: