home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1998 January (DVD) / VPR980100.ISO / OLS / WIN32 / KAKIMAC / KAKIMAC4.LZH / KDATE2CD.MAC next >
Text File  |  1994-08-13  |  19KB  |  464 lines

  1. //【マクロ名】kDATE2cD.mac by 水銀水(Suigwinsui)/小田 明夫 (HGD01603) 94/08/08
  2. //      日本語文書作成支援「書きマクロ」シリーズ 第4集 Ver.2.0(日時入力支援サブマクロ)
  3. //【使用対象】秀丸 for Windows 上で日本語文章を快適に処理したい全てのみなさま。
  4. //【機能概略】西暦、和暦の多様な入力と既存日時情報の変換。
  5. //日時入力支援  k_DATE Ver.2.0 のメインマクロが kDATE2m1.mac。
  6. //        kDATE2cD.mac kDATE2cT.mac を含め、3ファイルで構成される。
  7. //        マクロ登録+キー割り当ては、kDATE2m1.mac だけで良い。
  8. //        ただし、kDATE2cD.mac 単体でも、非選択時起動MODE、選択後起動MODEとも
  9. //        完全に機能するように設計されていますので、年月日についての特化された改変利用等に対応。
  10. //【注意】    1926年(昭和元年)から2025年迄元号変化に対応対応、元号は元年の元旦から変更。
  11. //////////////////////////////////////////////////////////////////////////////////
  12. call k_DATEini;//初期値読み込み
  13. if(selecting){
  14.     #selectingD=1;
  15.     escape;
  16.     #Dtx=seltopx;#Dty=seltopy;#Dox=seltopx;#Doy=seltopy;
  17.     #Dex=selendx;#Dey=selendy;
  18.     moveto #Dtx,#Dty;left;#Dtx=x;#Dty=y;
  19.     if(#Dex==0){moveto #Dex,#Dey;left;#Dex=x;#Dey=y;}
  20.     moveto #Dtx,#Dty;
  21.     searchdown "[0-9][0-9]/[0-9][0-9]/[0-9][0-9]",regular;//if(result)#Dfok=1;
  22.     if(result)#Dfok=1;escape;
  23.     if(#Dfok!=1||y>#Dey||(y==#Dey&&x>#Dex)){message "指定された範囲に、変換可能な形の「年月日」情報を発見できませんでした!!\n"+
  24.         "現在のバージョンでサポートする検索は次の制限内です\n"+
  25.         " (1)「年月日」は、半角「YY/MM/DD」で書かれてあるもののみ\n"+
  26.         " (2)従って、1996年と1096年等、100年単位の区別がつきません(^^;\n"+
  27.         " (3)年号は、昭和まで(全元号必要ならゆ~てくらはい(^^)ゞ\n"+
  28.         " (4)平成は、西暦の2025年まで\n"+
  29.         " (5)秀丸の検索制限を受けます\n"+
  30.         "─────────────────────────────────\n"+
  31.         "(C) 1994/08/08 水銀水(Suigwinsui) / 小田 明夫 (HGD01603) @My Friend Office ";
  32.         $OD="";
  33.     }else{$OD=gettext(x,y,x+12,y);// 1回目表示
  34.          call CustAllD;
  35.         while(1){
  36.             finddown;if(!result){moveto #Dox,#Doy;break;}else#Dfok=1;escape;
  37.             if(#Dfok!=1||y>#Dey||(y==#Dey&&x>#Dex)){//message "指定範囲内の検索を完了しました";
  38.             break;
  39.             }else{
  40.                 $OD=gettext(x,y,x+12,y);
  41.                 call CustAllD;
  42.             }
  43.         }
  44.     }
  45.     moveto #Dox,#Doy;//right;
  46. }else{
  47. #selectingD=0;
  48. $OD=date;
  49. call CustAllD;
  50. }
  51. endmacro;
  52. CustAllD://カスタマイズ
  53. $$s1="■「年月日(曜日)」 出力形式設定 k_DATE Ver.2■";
  54. $$s2="━━━━━━━━━━━━━━━━━━━━━━";
  55. $$s4="━━━━━━━━━━━━━━━━━━━━━━";
  56. $$s5="      &1. 年形式設定";
  57. $$s6="      &2. 年月日のセパレータ設定";
  58. $$s7="      &3. 月日形式設定";
  59. $$s8="      &4. 曜日形式設定";
  60. $$s9="────────設定記憶 &M ─────────";
  61. $$s10="────────設定破棄 &X ─────────";
  62. $$s11="━━━━━━[ 検索変換MODE 操作 ]━━━━━━";
  63. $$s14="─────置換出力後、次検索 &R ───────";
  64. $$s15="─────挿入出力後、次検索 &I ───────";
  65. $$s16="─────出力なしで次を検索 &N ───────";
  66. while(1){
  67. call Set111D;
  68. call SetSpeedD;
  69. $Da=$Y[#Yk]+$SP1[#SPk]+$M[#MDk]+$SP2[#SPk]+$D[#MDk]+$SP3[#SPk]+$W[#Wk];
  70. if(#kobetuD){$$s3= "Sample   "+$Da;}else{$$s3= "●出力●   "+$Da;}
  71. if($W0!="")$$s12="■取得年月日  "+$OD;else $$s12="■取得年月日  "+leftstr($OD,8);
  72. $$s13="■変換年月日  "+$Da;
  73. if(!#selectingD) menu $$s1,$$s2,$$s3,$$s4,$$s5,$$s6,$$s7,$$s8,$$s9,$$s10;
  74. else menu $$s1,$$s2,$$s3,$$s4,$$s5,$$s6,$$s7,$$s8,$$s9,$$s10,$$s11,$$s12,$$s13,$$s14,$$s15,$$s16;
  75.          if(result==0){endmacro;}
  76.     else if(result==1){message "「年月日(曜日)」 出力形式設定は下記4箇所の設定を行います\n●(計6,120種)\n"+
  77.     "┌───(1)年形式(1994,H06,H6,昭和元年,平成十二年,等17種)\n"+
  78.     "│┌─┬───(3)月日形式(03月15日,3月15日,弥生二十五日,等10種)\n"+
  79.     "││ │┌─────(4)曜日形式(水曜日,Wed,Wednesday,等6種)\n"+
  80.     "94/08/12(水) 15:23:45\n"+
  81.     " └─┴──(2)セパレータ(/,-,/,-,年月日,等6種)\n"+
  82.     "─────────────────────────────────\n"+
  83.     "(C)1994/08/08 水銀水(Suigwinsui)/小田 明夫(HGD01603) @My Friend Office"+
  84.     "";continue;}
  85.     else if(result==2||result==4){message "年月日情報の前にある表示による動作の違い\n Sample :表示するだけ\n ●出力●:年月日を出力する";}
  86.     else if(result==3){if(!#kobetuD){insert $Da;endmacro;}message"検索変換MODE中は下の操作から選択して下さい";}
  87.     else if(result==5){call Yset;}
  88.     else if(result==6){call Sset;}
  89.     else if(result==7){call MDset;}
  90.     else if(result==8){call Wset;}
  91.     else if(result==9){call WriteCust;if(!#kobetuD)continue;if(!#selectingD)break;else continue;}
  92.     else if(result==10){if(!#selectingD)break;else continue;}
  93.     else if(result==11){message "選択状態での操作は次の4つです\n"+
  94.     " (R)置換出力後、次検索:取得年月日を変換年月日に置き換え、検索続行\n"+
  95.     " (I)挿入出力後、次検索:取得年月日を変換年月日の前に挿入し、検索続行\n"+
  96.     " (N)出力なしで次を検索:なにもしないで、次の検索を続ける\n"+
  97.     " 強制終了: [ESC] キーを押す\n"+
  98.     "────────────────────────────────\n"+
  99.     "(C)1994/08/08 水銀水(Suigwinsui)/小田 明夫(HGD01603) @My Friend Office";continue;}
  100.     else if(result==14){if(#Wk!=0){delete;delete;delete;delete;delete;delete;delete;delete;delete;delete;delete;}
  101.                 else {delete;delete;delete;delete;delete;delete;delete;delete;}
  102.         insert $Da;break}
  103.     else if(result==15){insert $Da;break;}
  104.     else if(result==16){break;}
  105. }//while(1)
  106. //endmacro;
  107. return;
  108. Set111D:
  109. $Y[1]=midstr($OD,0,2);//年:94
  110. $M[1]=midstr($OD,3,2);//月:09
  111. $D[1]=midstr($OD,6,2);//日:23
  112. $W0=midstr($OD,9,2);//曜日:水
  113. if(!($W0=="月"||$W0=="火"||$W0=="水"||$W0=="木"||$W0=="金"||$W0=="土"||$W0=="日")){$W0="";#Wk=0;}
  114. if(val($Y[1])<=25){$C="20";#C=1988;$G="平成";$G1="H";}
  115. else if(val($Y[1])<=88){$C="19";#C=1925;$G="昭和";$G1="S";}
  116. else {$C="19";#C=1988;$G="平成";$G1="H";}
  117. $svY=str( val($C+$Y[1])-#C);
  118. $svM=str( val($M[1]));
  119. $svD=str( val($D[1]));
  120. return;
  121.  
  122. //////////////////
  123. SetSpeedD:
  124. if(#Yk==2){$Y[2]="'"+$Y[1];}        //年:'94
  125. else if(#Yk==3){$Y[3]=$C+$Y[1];}    //年:1994
  126. else if(#Yk==4){call HS2ZS $Y[1];$Y[4]=$$return;}      //年:94
  127. else if(#Yk==5){call HS2ZS $Y[1];$Y[5]="’"+$$return;}//年:’94
  128. else if(#Yk==6){call HS2ZS $C+$Y[1];$Y[6]=$$return;}//年:1994
  129. else if(#Yk==7){call HS2K1 $C+$Y[1];$Y[7]=$$return;}      //年:一九九四
  130. else if(#Yk==8){call HS2K2 $C+$Y[1];$Y[8]=$$return;}  //年:千九百九十四
  131. else if(#Yk==9){$Y[9]=$G1+rightstr("00"+$svY,2);}    //年:H06
  132. else if(#Yk==10){$Y[10]=$G1+rightstr("  "+$svY,2);}      //年:H_6
  133. else if(#Yk==11){$Y[11]=$G1+$svY;}              //年:H6
  134. else if(#Yk==12){$Y[12]=$G+rightstr("00"+$svY,2);}      //年:平成06
  135. else if(#Yk==13){$Y[13]=$G+rightstr("  "+$svY,2);}      //年:平成_6
  136. else if(#Yk==14){$Y[14]=$G+$svY;}                //年:平成6
  137. else if(#Yk==15){call HS2ZS $svY;$Y[15]=$G+$$return;}//年:平成6
  138. else if(#Yk==16){call HS2K1 $svY,"G";$Y[16]=$G+$$return;}//年:平成六、位なし
  139. else if(#Yk==17){call HS2K2 $svY,"G";$Y[17]=$G+$$return;}//年:平成六、位付き
  140. if(#MDk==2){
  141.     $M[2]=rightstr("  "+$svM,2);        //月:_9
  142.     $D[2]=rightstr("  "+$svD,2);        //日:_23
  143. }else if(#MDk==3){
  144.     $M[3]=$svM;            //月:9
  145.     $D[3]=$svD;            //日:23
  146. }else if(#MDk==4){//全角数字
  147.     if(val($M[1])<10){call HS2ZS $svM;$M[4]=$$return;}else $M[4]=$M[1];
  148.     if(val($D[1])<10){call HS2ZS $svD;$D[4]=$$return;}else $D[4]=$D[1];
  149. }else if(#MDk==5){//全角数字、0付き
  150.     call HS2ZS $M[1];$M[5]=$$return;//月:09
  151.      call HS2ZS $D[1];$D[5]=$$return;//日:023
  152. }else if(#MDk==6){//全角数字、空白付き
  153.     call HS2ZS rightstr("  "+$svM,2);$M[6]=$$return;//月:_9
  154.     call HS2ZS rightstr("  "+$svD,2);$D[6]=$$return;//日:_23
  155. }else if(#MDk==7){//全角数字、ツメ
  156.     call HS2ZS $svM;$M[7]=$$return;//月:9
  157.     call HS2ZS $svD;$D[7]=$$return;//日:23
  158. }else if(#MDk==8){//全角漢数字、ツメ、位表示なし
  159.     call HS2K1 $svM;$M[8]=$$return;//月:九
  160.     call HS2K1 $svD;$D[8]=$$return;//日:二三
  161. }else if(#MDk==9){//全角漢数字、ツメ、位表示あり
  162.     call HS2K2 $svM;$M[9]=$$return;//月:十二
  163.     call HS2K2 $svD;$D[9]=$$return;//日:二十三
  164. }else if(#MDk==10){//全角漢数字、古典月ツメ、位表示あり
  165.     #SPk=9;
  166.     call HankakuSuuzi2KotenTuki $svM;$M[10]=$$return;//月。弥生
  167.     call HS2K2 $svD;$D[10]=$$return;//日:二十三
  168. }
  169. if(#Wk==0)$W[0]="";
  170. else if(#Wk==1)$W[1]="("+$W0+")";
  171. else if(#Wk==2)$W[2]="("+$W0+"曜日)";
  172. else if(#Wk==3){
  173.          if($W0=="月")$W[3]="(Mon)";
  174.     else if($W0=="火")$W[3]="(Tue)";
  175.     else if($W0=="水")$W[3]="(Wed)";
  176.     else if($W0=="木")$W[3]="(Thr)";
  177.     else if($W0=="金")$W[3]="(Fri)";
  178.     else if($W0=="土")$W[3]="(Sat)";
  179.     else if($W0=="日")$W[3]="(Sun)";}
  180. else if(#Wk==4){
  181.          if($W0=="月")$W[4]="(MON)";
  182.     else if($W0=="火")$W[4]="(TUE)";
  183.     else if($W0=="水")$W[4]="(WED)";
  184.     else if($W0=="木")$W[4]="(THU)";
  185.     else if($W0=="金")$W[4]="(FRI)";
  186.     else if($W0=="土")$W[4]="(SAT)";
  187.     else if($W0=="日")$W[4]="(SUN)";}
  188. else if(#Wk==5){
  189.          if($W0=="月")$W[5]="(Monday)";
  190.     else if($W0=="火")$W[5]="(Tuesday)";
  191.     else if($W0=="水")$W[5]="(Wednesday)";
  192.     else if($W0=="木")$W[5]="(Thusday)";
  193.     else if($W0=="金")$W[5]="(Friday)";
  194.     else if($W0=="土")$W[5]="(Saturday)";
  195.     else if($W0=="日")$W[5]="(Sunday)";}
  196. if(#SPk==0){$SP1[0]="";$SP2[0]="";$SP3[0]="";}
  197. else if(#SPk==1){$SP1[1]="/";$SP2[1]="/";$SP3[1]="";}
  198. else if(#SPk==2){$SP1[2]="-";$SP2[2]="-";$SP3[2]="";}
  199. else if(#SPk==3){$SP1[3]=".";$SP2[3]=".";$SP3[3]="";}
  200. else if(#SPk==4){$SP1[4]=" ";$SP2[4]=" ";$SP3[4]=" ";}
  201. else if(#SPk==5){$SP1[5]="年";$SP2[5]="月";$SP3[5]="日";}
  202. else if(#SPk==9){$SP1[9]="年";$SP2[9]="";$SP3[9]="日";}
  203. return;
  204. /////////////////
  205.  
  206. Wset://曜日設定
  207. if(!#WeekSetting)call WeekSetting;
  208. $$s1="曜日の形式を選択してください";
  209. $$s2=$W[1];
  210. $$s3=$W[2];
  211. $$s4=$W[3];
  212. $$s5=$W[4];
  213. $$s6=$W[5];
  214. $$s7="(曜日表示なし)";
  215. $$s8="──────────設定破棄───────────";
  216. while(1){
  217.     menu $$s1,$$s2,$$s3,$$s4,$$s5,$$s6,$$s7,$$s8;
  218.     if(result==0){endmacro;}
  219.     else if(result==1){continue;}
  220.     else if(result==7){;}
  221.     #Wk=result-1;
  222.     break;
  223. }//while(1)
  224. return;
  225. WeekSetting:
  226. $W[1]="("+$W0+")";
  227. $W[2]="("+$W0+"曜日)";
  228.      if($W0=="月"){$W[3]="(Mon)";$W[4]="(MON)";$W[5]="(Monday)";}
  229. else if($W0=="火"){$W[3]="(Tue)";$W[4]="(TUE)";$W[5]="(Tuesday)";}
  230. else if($W0=="水"){$W[3]="(Wed)";$W[4]="(WED)";$W[5]="(Wednesday)";}
  231. else if($W0=="木"){$W[3]="(Thu)";$W[4]="(THU)";$W[5]="(Thusday)";}
  232. else if($W0=="金"){$W[3]="(Fri)";$W[4]="(FRI)";$W[5]="(Friday)";}
  233. else if($W0=="土"){$W[3]="(Sat)";$W[4]="(SAT)";$W[5]="(Saturday)";}
  234. else if($W0=="日"){$W[3]="(Sun)";$W[4]="(SUN)";$W[5]="(Sunday)";}
  235. #WeekSetting=1;
  236. return;
  237.  
  238. Sset://セパレーター設定
  239. if(!#SepDSetting)call SepDSetting;
  240. $$s1="年・月・日の区切り形式を選択してください";
  241. $$s2=$Y[#Yk]+$SP1[1]+$M[#MDk]+$SP2[1]+$D[#MDk]+$SP3[1]+"・・・・・・・・(半角スラッシュ「/」で区切る)";
  242. $$s3=$Y[#Yk]+$SP1[2]+$M[#MDk]+$SP2[2]+$D[#MDk]+$SP3[2]+"・・・・・・・(半角ハイフン「-」で区切る)";
  243. $$s4=$Y[#Yk]+$SP1[3]+$M[#MDk]+$SP2[3]+$D[#MDk]+$SP3[3]+"・・・・・・・・(半角ピリオド「.」で区切る)";
  244. $$s5=$Y[#Yk]+$SP1[4]+$M[#MDk]+$SP2[4]+$D[#MDk]+$SP3[4]+"・・・(半角空白「 」で区切る)";
  245. $$s6=$Y[#Yk]+$SP1[5]+$M[#MDk]+$SP2[5]+$D[#MDk]+$SP3[5]+"・・・(「年月日」で区切る)";
  246. //$$s7=$Y[#Yk]+$SP[6][1]+$M[#MDk]+$SP[6][2]+$D[#MDk]+$SP[6][3]+"・・・(古典月、位表示付き)";
  247. $$s7=$Y[#Yk]+$M[#MDk]+$D[#MDk]+"・・・・・・・・・(セパレータなし)";
  248. $$s8="────────────設定破棄──────────────";
  249. while(1){
  250.     menu $$s1,$$s2,$$s3,$$s4,$$s5,$$s6,$$s7,$$s8;
  251.     if(result==0){endmacro;}
  252.     else if(result==1){continue;}
  253.     else if(result==8){break;}
  254.     #SPk=result-1;
  255.     break;
  256.  
  257. }//while(1)
  258. return;
  259. SepDSetting:
  260. $SP1[0]="";$SP2[0]="";$SP3[0]="";
  261. $SP1[1]="/";$SP2[1]="/";$SP3[1]="";
  262. $SP1[2]="-";$SP2[2]="-";$SP3[2]="";
  263. $SP1[3]=".";$SP2[3]=".";$SP3[3]="";
  264. $SP1[4]=" ";$SP2[4]=" ";$SP3[4]=" ";//半角スペース
  265. $SP1[5]="年";$SP2[5]="月";$SP3[5]="日";
  266. $SP1[9]="年";$SP2[9]="";$SP3[9]="日";//古典
  267. #SepSetting=1;
  268. return;
  269.  
  270. Yset://年の設定
  271. if(!#YearSetting)call YearSetting;
  272. $$sH="     ";
  273. $$s1="年号・数字形式を下記から選択してください";
  274. $$s2=$$sH+$Y[1]+"・・・・・・・・・・・・・・・・・(西暦2桁、半角2桁)";
  275. $$s3=$$sH+$Y[2]+"・・・・・・・・・・・・・・・・(西暦2桁、半角3桁、頭半角カンマ)";
  276. $$s4=$$sH+$Y[3]+"・・・・・・・・・・・・・・・(西暦4桁、半角4桁)";
  277. $$s5=$$sH+$Y[4]+"・・・・・・・・・・・・・・・(西暦2桁、全角2桁)";
  278. $$s6=$$sH+$Y[5]+"・・・・・・・・・・・・・(西暦2桁、全角2桁、頭全角カンマ)";
  279. $$s7=$$sH+$Y[6]+"・・・・・・・・・・・(西暦4桁、全角4桁)";
  280. $$s8=$$sH+$Y[7]+"・・・・・・・・・・・(西暦4桁、全角漢数字4桁、位表示なし)";
  281. $$s9=$$sH+$Y[8]+"・・・・・・・・・・・(西暦4桁、全角漢数字4桁、位表示あり)";
  282. $$s10=$$sH+$Y[9]+"・・・・・・・・・・・・・・・・(和暦2桁、半角2桁、H・0付き)";
  283. $$s11=$$sH+$Y[10]+"・・・・・・・・・・・・・・・・(和暦2桁、半角2桁、H空白付き)";
  284. $$s12=$$sH+$Y[11]+"・・・・・・・・・・・・・・・・・(和暦ツメ、半角、H付き)";
  285. $$s13=$$sH+$Y[12]+"・・・・・・・・・・・・・(和暦2桁、半角2桁、元号.0付き)";
  286. $$s14=$$sH+$Y[13]+"・・・・・・・・・・・・・(和暦2桁、半角2桁、元号空白付き)";
  287. $$s15=$$sH+$Y[14]+"・・・・・・・・・・・・・・(和暦ツメ、半角、元号付き)";
  288. $$s16=$$sH+$Y[15]+"・・・・・・・・・・・・・(和暦ツメ、全角数字、元号付き)";
  289. $$s17=$$sH+$Y[16]+"・・・・・・・・・・・・・(和暦ツメ、全角漢数字、元号付き、位表示なし)";
  290. $$s18=$$sH+$Y[17]+"・・・・・・・・・・・・・(和暦ツメ、全角漢数字、元号付き、位表示あり)";
  291. $$s19="────────────設定破棄──────────────";
  292. while(1){
  293.     menu $$s1,$$s2,$$s3,$$s4,$$s5,$$s6,$$s7,$$s8,$$s9,$$s10,$$s11,$$s12,$$s13,$$s14,$$s15,$$s16,$$s17,$$s18,$$s19;
  294.     if(result==0){endmacro;}
  295.     else if(result==1)continue;
  296.     else if(result==19)break;
  297.     #Yk=result-1;
  298.     break;
  299. }//while(1)
  300. return;
  301. YearSetting:
  302. $Y[2]="'"+$Y[1];
  303. $Y[3]=$C+$Y[1];
  304. call HS2ZS $Y[1];$Y[4]=$$return;
  305. call HS2ZS $Y[1];$Y[5]="’"+$$return;
  306. call HS2ZS $C+$Y[1];$Y[6]=$$return;
  307. call HS2K1 $C+$Y[1];$Y[7]=$$return;
  308. call HS2K2 $C+$Y[1];$Y[8]=$$return;
  309. $Y[9]=$G1+rightstr("00"+$svY,2);
  310. $Y[10]=$G1+rightstr("  "+$svY,2);
  311. $Y[11]=$G1+$svY;
  312. $Y[12]=$G+rightstr("00"+$svY,2);
  313. $Y[13]=$G+rightstr("  "+$svY,2);
  314. $Y[14]=$G+$svY;
  315. call HS2ZS $svY;$Y[15]=$G+$$return;
  316. call HS2K1 $svY,"G";$Y[16]=$G+$$return;
  317. call HS2K2 $svY,"G";$Y[17]=$G+$$return;
  318. #YearSetting=1;
  319. return;
  320.  
  321. ///////
  322. MDset://月&日の設定
  323. if(!#MonthSetting)call MonthSetting;
  324. $$s1="月・日の形式を選択してください (年、セパレータは参考)";
  325. $$s2=$Y[#Yk]+$SP1[#SPk]+$M[1]+$SP2[#SPk]+$D[1]+$SP3[#SPk]+"・・・・・・・・・(半角2桁、0付き)";
  326. $$s3=$Y[#Yk]+$SP1[#SPk]+$M[2]+$SP2[#SPk]+$D[2]+$SP3[#SPk]+"・・・・・・・・・(半角2桁、空白付き)";
  327. $$s4=$Y[#Yk]+$SP1[#SPk]+$M[3]+$SP2[#SPk]+$D[3]+$SP3[#SPk]+"・・・・・・・・・(半角、ツメ)";
  328. $$s5=$Y[#Yk]+$SP1[#SPk]+$M[4]+$SP2[#SPk]+$D[4]+$SP3[#SPk]+"・・・・・・・・・(半角全角混合半角2桁占有)";
  329. $$s6=$Y[#Yk]+$SP1[#SPk]+$M[5]+$SP2[#SPk]+$D[5]+$SP3[#SPk]+"・・・・・・・・・(全角2桁、0付き)";
  330. $$s7=$Y[#Yk]+$SP1[#SPk]+$M[6]+$SP2[#SPk]+$D[6]+$SP3[#SPk]+"・・・・・・・・・(全角2桁、空白付き)";
  331. $$s8=$Y[#Yk]+$SP1[#SPk]+$M[7]+$SP2[#SPk]+$D[7]+$SP3[#SPk]+"・・・・・・・・・(全角、ツメ)";
  332. $$s9=$Y[#Yk]+$SP1[#SPk]+$M[8]+$SP2[#SPk]+$D[8]+$SP3[#SPk]+"・・・・・・・・・(全角漢字ツメ、位表示なし)";
  333. $$s10=$Y[#Yk]+$SP1[#SPk]+$M[9]+$SP2[#SPk]+$D[9]+$SP3[#SPk]+"・・・・・・・・・(全角漢字ツメ、位表示付き)";
  334. $$s11=$Y[#Yk]+$SP1[#SPk]+$M[10]+$SP2[#SPk]+$D[10]+$SP3[#SPk]+"・・・・・・・・・(古典月、日:位表示付き)";
  335. $$s12="────────────設定破棄─────────────";
  336. while(1){
  337.     menu $$s1,$$s2,$$s3,$$s4,$$s5,$$s6,$$s7,$$s8,$$s9,$$s10,$$s11,$$s12;
  338.     if(result==0){endmacro;}
  339.     else if(result==1)continue;
  340.     else if(result==12)break;
  341.     else if(result==11)#SPk=9;
  342.     #MDk=result-1;
  343.     break;
  344.  
  345. }
  346. return;
  347. MonthSetting:
  348. $M[2]=rightstr("  "+$svM,2);        //月:_9
  349. $D[2]=rightstr("  "+$svD,2);        //日:_23
  350. $M[3]=$svM;            //月:9
  351. $D[3]=$svD;            //日:23
  352. if(val($M[1])<10){call HS2ZS $svM;$M[4]=$$return;}else{$M[4]=$M[1];}
  353. if(val($D[1])<10){call HS2ZS $svD;$D[4]=$$return;}else{$D[4]=$D[1];}
  354. call HS2ZS $M[1];$M[5]=$$return;//月:09
  355. call HS2ZS $D[1];$D[5]=$$return;//日:023
  356. call HS2ZS rightstr("  "+$svM,2);$M[6]=$$return;//月:_9
  357. call HS2ZS rightstr("  "+$svD,2);$D[6]=$$return;//日:_23
  358. call HS2ZS $svM;$M[7]=$$return;//月:9
  359. call HS2ZS $svD;$D[7]=$$return;//日:23
  360. call HS2K1 $svM;$M[8]=$$return;//月:九
  361. call HS2K1 $svD;$D[8]=$$return;//日:二三
  362. call HS2K2 $svM;$M[9]=$$return;//月:十二
  363. call HS2K2 $svD;$D[9]=$$return;//日:二十三
  364. call HankakuSuuzi2KotenTuki $svM;$M[10]=$$return;//月:弥生
  365. call HS2K2 $svD;$D[10]=$$return;//日:二十三
  366. #MonthSetting=1;
  367. return;
  368.  
  369. WriteCust:
  370. writeininum "hidemaru.ini","k_DATE","Yk",#Yk;
  371. writeininum "hidemaru.ini","k_DATE","SPk",#SPk;
  372. writeininum "hidemaru.ini","k_DATE","MDk",#MDk;
  373. writeininum "hidemaru.ini","k_DATE","Wk",#Wk;
  374. return;
  375. k_DATEini:
  376. #Yk=getininum("hidemaru.ini","k_DATE","Yk");
  377. #SPk=getininum("hidemaru.ini","k_DATE","SPk");
  378. #MDk=getininum("hidemaru.ini","k_DATE","MDk");
  379. #Wk=getininum("hidemaru.ini","k_DATE","Wk");
  380. #kobetuD=getininum("hidemaru.ini","k_DATE","kobetuD");
  381. if(#Yk==0)#Yk=1;
  382. if(#SPk==0)#SPk=1;
  383. if(#MDk==0)#MDk=1;
  384. if(#Wk==0)#Wk=1;
  385. return;
  386. ////////////////////////////////////変換関数////////////////////////////////////
  387. HS2ZS://半角数字を全角数字に
  388. $$hansuu=$$1;
  389. ##n=0;
  390. ##hslength=strlen($$hansuu);
  391. $$rets="";
  392. while(##n<##hslength){
  393.     if(midstr($$hansuu,##n,1)==" ")$$rets=$$rets+" ";
  394.     else $$rets=$$rets+char(ascii(midstr($$hansuu,##n,1))+33311);
  395.     ##n=##n+1;
  396. }
  397. return $$rets;
  398. HS2K1://半角数字を漢数字(位表示なし)に。(ケタ数制限なし)(type1:123:一二三)。
  399. $$zensuu=$$1;
  400. $$G=$$2;
  401. if($$G=="G"&&$$zensuu=="1")return "元";
  402. ##hslength=strlen($$zensuu);
  403. ##n=0;
  404. $$ks0="";
  405. while(##n<##hslength){
  406.     $$ks1=midstr($$zensuu,##n,1);
  407.     if($$ks1=="1")$$ks1="一";
  408.     else if($$ks1=="2")$$ks1="二";
  409.     else if($$ks1=="3")$$ks1="三";
  410.     else if($$ks1=="4")$$ks1="四";
  411.     else if($$ks1=="5")$$ks1="五";
  412.     else if($$ks1=="6")$$ks1="六";
  413.     else if($$ks1=="7")$$ks1="七";
  414.     else if($$ks1=="8")$$ks1="八";
  415.     else if($$ks1=="9")$$ks1="九";
  416.     else if($$ks1=="0")$$ks1="〇";
  417.     $$ks0=$$ks0+$$ks1;
  418.     ##n=##n+1;
  419. }
  420. return $$ks0;
  421. HS2K2://半角数字を漢数字(位表示あり)に。(4ケタまで)(type1:1234:千二百三十四)。
  422. $$zensuu=$$1;
  423. $$G=$$2;
  424. ##ketasuu=strlen($$zensuu);
  425. if(##ketasuu==1&&$$zensuu=="0") return "零";else if($$G=="G"&&$$zensuu=="1")return "元";
  426. ##n=0;
  427. $$ks0="";
  428. while(##n<##ketasuu){
  429.     ##kurai=##ketasuu-##n;
  430.     $$ks1=midstr($$zensuu,##n,1);
  431.     if($$ks1=="1")$$ks1="一";
  432.     else if($$ks1=="2")$$ks1="二";
  433.     else if($$ks1=="3")$$ks1="三";
  434.     else if($$ks1=="4")$$ks1="四";
  435.     else if($$ks1=="5")$$ks1="五";
  436.     else if($$ks1=="6")$$ks1="六";
  437.     else if($$ks1=="7")$$ks1="七";
  438.     else if($$ks1=="8")$$ks1="八";
  439.     else if($$ks1=="9")$$ks1="九";
  440.     else if($$ks1=="0")$$ks1="〇";
  441.     if(##kurai==1){if($$ks1=="〇")$$ks1="";}//1 no kurai
  442.     else if(##kurai==2){if($$ks1=="〇")$$ks1="";else if($$ks1!="一")$$ks1=$$ks1+"十";else $$ks1="十";}//10 no kurai
  443.     else if(##kurai==3){if($$ks1=="〇")$$ks1="";else if($$ks1!="一")$$ks1=$$ks1+"百";else $$ks1="百";}//100 no kurai
  444.     else if(##kurai==4){if($$ks1=="〇")$$ks1="";else if($$ks1!="一")$$ks1=$$ks1+"千";else $$ks1="千";}//1000 no kurai
  445.     $$ks0=$$ks0+$$ks1;
  446.     ##n=##n+1;
  447. }
  448. return $$ks0;
  449. HankakuSuuzi2KotenTuki:
  450. $$ks1=$$1;
  451.     if($$ks1=="1")$$ks1="睦月";
  452.     else if($$ks1=="2")$$ks1="如月";
  453.     else if($$ks1=="3")$$ks1="弥生";
  454.     else if($$ks1=="4")$$ks1="卯月";
  455.     else if($$ks1=="5")$$ks1="皐月";
  456.     else if($$ks1=="6")$$ks1="水無月";
  457.     else if($$ks1=="7")$$ks1="文月";
  458.     else if($$ks1=="8")$$ks1="葉月";
  459.     else if($$ks1=="9")$$ks1="長月";
  460.     else if($$ks1=="10")$$ks1="神無月";
  461.     else if($$ks1=="11")$$ks1="霜月";
  462.     else if($$ks1=="12")$$ks1="師走";
  463. return $$ks1;
  464.