User manual - 拡張機能ライブラリ リファレンスマニュアルver.1.00(2008年5月26日)
25
/* KY_F01 : F1キー */
/* KY_F02 : F2キー */
/* KY_F03 : F3キー */
/* KY_F04 : F4キー */
/* KY_F05 : F5キー */
/* KY_F06 : F6キー */
/* KY_F07 : F7キー */
/* KY_F08 : F8キー */
/* KY_ENT : 実行キー */
/* KY_LB : LB発生 */
/* KY_OBR : バーコード読込み */
/* E_NG : 異常終了 */
/* E_PRM : パラメータエラー */
/**********************************************************************/
ER ht_DateInp(B mode, ER escape, H fsize, H type, UH clm, UH line, UB *string)
{
ER ret;
UH len;
H year,wyear,gengo;
H month;
H day;
ER wescape;
ret=0L;
wescape=(escape & KY_OBR_CANCEL); /* バーコードを使用させないため */
for(;;){
if (mode==SEIREKI_8) len=8; /* 西暦 4 桁+月 2 桁+日 2 桁 */
else if(mode==SEIREKI_6) len=6; /* 西暦 2 桁+月 2 桁+日 2 桁 */
else if(mode==WAREKI_6 ) len=6; /* 和暦(平成)2 桁+月 2 桁+日 2 桁 */
else{ ret=E_PRM; break; }
ret=ht_NumInp(wescape, fsize, type, len, clm, line, string);
if(ret==KY_ENT){
if (mode==SEIREKI_8){
if(strlen((const char *)string)==8){
year =(H)memto_l(string , 4);
month=(H)memto_l(string+4, 2);
day =(H)memto_l(string+6, 2);
if(ht_CheckDate(year, month, day)==E_OK) break;
}
}
else if (mode==SEIREKI_6){
if(strlen((const char *)string)==6){
year =(H)memto_l(string , 2);
month=(H)memto_l(string+2, 2);
day =(H)memto_l(string+4, 2);
if(year<80) year += 2000;
else year += 1900;
if(ht_CheckDate(year, month, day)==E_OK) break;
}
}
else{
if(strlen((const char *)string)==6){