⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calendar.c

📁 又一款WEB游戏原代码Bk_Sources_RPG?忠豢頦EB游戏原代码Bk_Sources_RPG
💻 C
字号:
/* interface functions. * code by Shane Caraveo shane@caraveo.com * copy freely! * * $Id: calendar.c,v 1.18 2000/02/20 17:44:00 eschmid Exp $ */#include "sdncal.h"/*  * this array should be set up as: * {"PHPScriptFunctionName",dllFunctionName,1}  */function_entry calendar_functions[] = {	{"jdtogregorian", cal_jdtogreg, NULL},	{"gregoriantojd", cal_gregtojd, NULL},	{"jdtojulian", cal_jdtojul, NULL},	{"juliantojd", cal_jultojd, NULL},	{"jdtojewish", cal_jdtojewish, NULL},	{"jewishtojd", cal_jewishtojd, NULL},	{"jdtofrench", cal_jdtofrench, NULL},	{"frenchtojd", cal_frenchtojd, NULL},	{"jddayofweek", cal_jddayofweek, NULL},	{"jdmonthname", cal_monthname, NULL},	{"easter_date", cal_easter_date, NULL},	{"easter_days", cal_easter_days, NULL},	{NULL, NULL, NULL}};php3_module_entry calendar_module_entry = {	"Calendar", calendar_functions, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL};#if COMPILE_DLDLEXPORT php3_module_entry *get_module(void) { return &calendar_module_entry; }#endif/* {{{ proto string jdtogregorian(int juliandaycount)   Convert a julian day count to a gregorian calendar date */DLEXPORT void cal_jdtogreg(INTERNAL_FUNCTION_PARAMETERS){	pval *julday;	int year, month, day;	char date[10];	if (getParameters(ht, 1, &julday) == SUCCESS) {		convert_to_long(julday);		SdnToGregorian(julday->value.lval, &year, &month, &day);		sprintf(date, "%i/%i/%i", month, day, year);		return_value->value.str.val = estrdup(date);		return_value->value.str.len = strlen(date);		return_value->type = IS_STRING;	} else {		WRONG_PARAM_COUNT;	}	return;}/* {{{ proto int gregoriantojd(int month, int day, int year)   Convert a gregorian calendar date to julian day count */DLEXPORT void cal_gregtojd(INTERNAL_FUNCTION_PARAMETERS){	pval *year, *month, *day;	int jdate;	if (getParameters(ht, 3, &month, &day, &year) == SUCCESS) {		convert_to_long(month);		convert_to_long(day);		convert_to_long(year);		jdate = GregorianToSdn(year->value.lval, month->value.lval, day->value.lval);		return_value->value.lval = jdate;		return_value->type = IS_LONG;	} else {		WRONG_PARAM_COUNT;	}}/* {{{ proto string jdtojulian(int juliandaycount)   Convert a julian day count to a julian calendar date */DLEXPORT void cal_jdtojul(INTERNAL_FUNCTION_PARAMETERS){	pval *julday;	int year, month, day;	char date[10];	if (getParameters(ht, 1, &julday) == SUCCESS) {		convert_to_long(julday);		SdnToJulian(julday->value.lval, &year, &month, &day);		sprintf(date, "%i/%i/%i", month, day, year);		return_value->value.str.val = estrdup(date);		return_value->value.str.len = strlen(date);		return_value->type = IS_STRING;	} else {		WRONG_PARAM_COUNT;	}	return;}/* {{{ proto int juliantojd(int month, int day, int year)   Convert a julian calendar date to julian day count */DLEXPORT void cal_jultojd(INTERNAL_FUNCTION_PARAMETERS){	pval *year, *month, *day;	int jdate;	if (getParameters(ht, 3, &month, &day, &year) == SUCCESS) {		convert_to_long(month);		convert_to_long(day);		convert_to_long(year);		jdate = JulianToSdn(year->value.lval, month->value.lval, day->value.lval);		return_value->value.lval = jdate;		return_value->type = IS_LONG;	} else {		WRONG_PARAM_COUNT;	}}/* {{{ proto string jdtojewish(int juliandaycount)   Convert a julian day count to a jewish calendar date */DLEXPORT void cal_jdtojewish(INTERNAL_FUNCTION_PARAMETERS){	pval *julday;	int year, month, day;	char date[10];	if (getParameters(ht, 1, &julday) == SUCCESS) {		convert_to_long(julday);		SdnToJewish(julday->value.lval, &year, &month, &day);		sprintf(date, "%i/%i/%i", month, day, year);		return_value->value.str.val = estrdup(date);		return_value->value.str.len = strlen(date);		return_value->type = IS_STRING;	} else {		WRONG_PARAM_COUNT;	}	return;}/* {{{ proto int jewishtojd(int month, int day, int year)   Convert a jewish calendar date to a julian day count */DLEXPORT void cal_jewishtojd(INTERNAL_FUNCTION_PARAMETERS){	pval *year, *month, *day;	int jdate;	if (getParameters(ht, 3, &month, &day, &year) == SUCCESS) {		convert_to_long(month);		convert_to_long(day);		convert_to_long(year);		jdate = JewishToSdn(year->value.lval, month->value.lval, day->value.lval);		return_value->value.lval = jdate;		return_value->type = IS_LONG;	} else {		WRONG_PARAM_COUNT;	}}/* {{{ proto string jdtofrench(int juliandaycount)   Convert a julian day count to a french republic calendar date */DLEXPORT void cal_jdtofrench(INTERNAL_FUNCTION_PARAMETERS){	pval *julday;	int year, month, day;	char date[10];	if (getParameters(ht, 1, &julday) == SUCCESS) {		convert_to_long(julday);		SdnToFrench(julday->value.lval, &year, &month, &day);		sprintf(date, "%i/%i/%i", month, day, year);		return_value->value.str.val = estrdup(date);		return_value->value.str.len = strlen(date);		return_value->type = IS_STRING;	} else {		WRONG_PARAM_COUNT;	}	return;}/* {{{ proto int frenchtojd(int month, int day, int year)   Convert a french republic calendar date to julian day count */DLEXPORT void cal_frenchtojd(INTERNAL_FUNCTION_PARAMETERS){	pval *year, *month, *day;	int jdate;	if (getParameters(ht, 3, &month, &day, &year) == SUCCESS) {		convert_to_long(month);		convert_to_long(day);		convert_to_long(year);		jdate = FrenchToSdn(year->value.lval, month->value.lval, day->value.lval);		return_value->value.lval = jdate;		return_value->type = IS_LONG;	} else {		WRONG_PARAM_COUNT;	}}/* {{{ proto mixed jddayofweek(int juliandaycount, int mode)   Returns name or number of day of week from julian day count */DLEXPORT void cal_jddayofweek(INTERNAL_FUNCTION_PARAMETERS){	pval *julday, *mode;	int day;	char *daynamel, *daynames;	if (getParameters(ht, 2, &julday, &mode) == SUCCESS) {		convert_to_long(julday);		convert_to_long(mode);		day = DayOfWeek(julday->value.lval);		daynamel = DayNameLong[day];		daynames = DayNameShort[day];		switch (mode->value.lval) {			case 0L:				return_value->value.lval = day;				return_value->type = IS_LONG;				break;			case 1L:				return_value->value.str.val = estrdup(daynamel);				return_value->value.str.len = strlen(daynamel);				return_value->type = IS_STRING;				break;			case 2L:				return_value->value.str.val = estrdup(daynames);				return_value->value.str.len = strlen(daynames);				return_value->type = IS_STRING;				break;			default:				return_value->value.lval = day;				return_value->type = IS_LONG;				break;		}	} else {		WRONG_PARAM_COUNT;	}	return;}/* {{{ proto string jdmonthname(int juliandaycount, int mode)   Returns name of month for julian day count */DLEXPORT void cal_monthname(INTERNAL_FUNCTION_PARAMETERS){	pval *julday, *mode;	char *monthname = NULL;	int month, day, year;	if (getParameters(ht, 2, &julday, &mode) == SUCCESS) {		convert_to_long(julday);		convert_to_long(mode);		switch (mode->value.lval) {			case 1L:			/* gregorian or julian month */				SdnToGregorian(julday->value.lval, &year, &month, &day);				monthname = MonthNameLong[month];				break;			case 2L:			/* gregorian or julian month */				SdnToJulian(julday->value.lval, &year, &month, &day);				monthname = MonthNameShort[month];				break;			case 3L:			/* gregorian or julian month */				SdnToJulian(julday->value.lval, &year, &month, &day);				monthname = MonthNameLong[month];				break;			case 4L:			/* jewish month */				SdnToJewish(julday->value.lval, &year, &month, &day);				monthname = JewishMonthName[month];				break;			case 5L:			/* french month */				SdnToFrench(julday->value.lval, &year, &month, &day);				monthname = FrenchMonthName[month];				break;			default:			/* default gregorian */				SdnToGregorian(julday->value.lval, &year, &month, &day);				monthname = MonthNameShort[month];				break;		}		return_value->value.str.val = estrdup(monthname);		return_value->value.str.len = strlen(monthname);		return_value->type = IS_STRING;		return;	} else {		WRONG_PARAM_COUNT;	}	return;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -