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; }