[[誕生日を覚えさせる]]

ユーザの誕生日を覚えさせよう。~
他の日付でも基本はいっしょ。~
時刻を覚えさせる場合にも応用できるかも。

----
#contents
----
~
*入力ボックスで覚えさせる [#p5388d4f]
※関数の[[is_empty>関数一覧#is_empty]]、[[is_digit>関数一覧#is_digit]]、[[substr>関数一覧#substr]]、[[nswitch>関数一覧#nswitch]]、[[calc>関数一覧#calc]]を使っています。~
 動かない場合は[[SAORIの設定>SAORI]]を見直してみてください。
 #「OnUserInput」が他に既にある場合は書き足すか書き換えます。
 *OnUserInput
 >(R0)を空打ちされた【タブ】(is_empty,(R1))
 $(R0)【タブ】(R1)
 >(R0)を教えてもらった
 
 *誕生日入力開始
 :\![open,inputbox,ユーザ誕生月日]誕生日と月を3桁以上で入力してね
 
 *ユーザ誕生月日を空打ちされた
 :教えてくれないんだ……。
 
// ↓三桁だと動かないので修正しました
// もっとスマートな方法があれば書き直してください・・・
// *ユーザ誕生月日を教えてもらった
// $仮ユーザ誕生月=(substr(バイト値、1)(ユーザ誕生月日)(バイト値、1)-4(バイト値、1)2)
// $仮ユーザ誕生日=(substr(バイト値、1)(ユーザ誕生月日)(バイト値、1)-2(バイト値、1)2)
// $ユーザ誕生月日【タブ】
// >ユーザ誕生月日がおかしい【タブ】!(不正誕生月日チェック)
// >誕生日入力確認
 *ユーザ誕生月日を教えてもらった
 $仮ユーザ誕生月=(iflist、(length,(ユーザ誕生月日))、==4、(substr,(ユーザ誕生月日),0,2)、==2、(substr,(ユーザ誕生月日),0,1)、(if、(compare_head,(ユーザ誕生月日),0)==1、(substr,(ユーザ誕生月日),1,1)、(substr,(ユーザ誕生月日),0,1)))
 $仮ユーザ誕生日=(if、(length,(ユーザ誕生月日))==4、(substr,(ユーザ誕生月日),2,2)、(substr,(ユーザ誕生月日),1,2))
 $ユーザ誕生月日【タブ】
 >ユーザ誕生月日がおかしい【タブ】!(不正誕生月日チェック)
 >誕生日入力確認
 
 
 *ユーザ誕生月日がおかしい
 :(仮ユーザ誕生月)月(仮ユーザ誕生日)日ってなに?
 ちゃんとした日付を教えてよ!
 $仮ユーザ誕生月【タブ】
 $仮ユーザ誕生日【タブ】
 
 @不正誕生月日チェック
 (when,(is_digit(バイト値、1)(仮ユーザ誕生月))&&(is_digit(バイト値、1)(仮ユーザ誕生日))
 ,(when,(仮ユーザ誕生月)>=1&&(仮ユーザ誕生月)<=12&&(仮ユーザ誕生日)>=1
 ,(calc,(仮ユーザ誕生日)<=(nswitch,(仮ユーザ誕生月),31,29,31,30,31,30,31,31,30,31,30,31))
 ,0
 )
 )
 
 *誕生日入力確認
 $ユーザ誕生月【タブ】(仮ユーザ誕生月)
 $ユーザ誕生日【タブ】(仮ユーザ誕生日)
 $仮ユーザ誕生月【タブ】
 $仮ユーザ誕生日【タブ】
 :(ユーザ誕生月)月(ユーザ誕生日)日だね! おぼえたよ!
''長所''
-選択肢と違って月日の一括入力が可能で慣れるとユーザさんにとっても早い。
-ちょっと書き足せば誕生年まで入力してもらうこともできる。

''短所''
-不正な入力のチェックのせいで大掛かりになる。
-処理があっちこっちいくので読みにくい。

*選択肢で覚えさせる [#d467140f]
※関数の[[nswitch>関数一覧#nswitch]]を使っています。~
 動かない場合は[[SAORIの設定>SAORI]]を見直してみてください。
 *誕生日の月を選ぶ
 :生まれた月を選んでね!\_q
 \q[1,誕生日の日を選ぶ]  \q[2,誕生日の日を選ぶ]  \q[3,誕生日の日を選ぶ]
 \q[4,誕生日の日を選ぶ]  \q[5,誕生日の日を選ぶ]  \q[6,誕生日の日を選ぶ]
 \q[7,誕生日の日を選ぶ]  \q[8,誕生日の日を選ぶ]  \q[9,誕生日の日を選ぶ]
 \q[10,誕生日の日を選ぶ] \q[11,誕生日の日を選ぶ] \q[12,誕生日の日を選ぶ]
 
 *誕生日の日を選ぶ
 $ユーザ誕生月=(選択ラベル)
 :今度は生まれた日を選んでね\_q
 \q[1,誕生日確認]  \q[2,誕生日確認]  \q[3,誕生日確認]  \q[4,誕生日確認]
 \q[5,誕生日確認]  \q[6,誕生日確認]  \q[7,誕生日確認]  \q[8,誕生日確認]
 \q[9,誕生日確認]  \q[10,誕生日確認] \q[11,誕生日確認] \q[12,誕生日確認]
 \q[13,誕生日確認] \q[14,誕生日確認] \q[15,誕生日確認] \q[16,誕生日確認]
 \q[17,誕生日確認] \q[18,誕生日確認] \q[19,誕生日確認] \q[20,誕生日確認]
 \q[21,誕生日確認] \q[22,誕生日確認] \q[23,誕生日確認] \q[24,誕生日確認]
 \q[25,誕生日確認] \q[26,誕生日確認] \q[27,誕生日確認] \q[28,誕生日確認]
 \q[29,誕生日確認](誕生日の日を選ぶ_末日)
 
 @誕生日の日を選ぶ_末日
  (nswitch、(誕生月)
 、\q[30,誕生日確認] \q[31,誕生日確認]
 、
 、\q[30,誕生日確認] \q[31,誕生日確認]
 、\q[30,誕生日確認]
 、\q[30,誕生日確認] \q[31,誕生日確認]
 、\q[30,誕生日確認]
 、\q[30,誕生日確認] \q[31,誕生日確認]
 、\q[30,誕生日確認] \q[31,誕生日確認]
 、\q[30,誕生日確認]
 、\q[30,誕生日確認] \q[31,誕生日確認]
 、\q[30,誕生日確認]
 、\q[30,誕生日確認] \q[31,誕生日確認]
 )
 
 *誕生日確認
 $ユーザ誕生日=(選択ラベル)
 :(ユーザ誕生月)月(ユーザ誕生日)日生まれなんだー。
''長所''
-入力ボックス方式と違って不正入力をまったく気にしなくていい。

''短所''
-誕生年まで入力してもらうのは選択肢だとほぼ無理。
-辞書がちょっと混み合って見辛い。
-慣れてくると入力ボックスの方が早い。

*SSP限定の新しくて簡単な方法 [#a41d0c8e]
#ref(848596638.png)
※関数の[[split>関数一覧#split]]を使っています。~
 動かない場合は[[SAORIの設定>SAORI]]を見直してみてください。
 #「OnUserInput」が他に既にある場合は書き換えるなどします。
 *OnUserInput
 $(R0)【タブ】(R1)
 >(R0)を教えてもらった
 
 *誕生日入力開始
 :\![open,dateinput,ユーザ誕生月日]誕生日を教えてね。
 
 *ユーザ誕生月日を教えてもらった
 $ダミー行【タブ】(nop,(split(バイト値、1)(ユーザ誕生月日)(バイト値、1),))
 $ユーザ誕生月【タブ】(S1)
 $ユーザ誕生日【タブ】(S2)
 $ユーザ誕生月日【タブ】
 :(ユーザ誕生月)月(ユーザ誕生日)日だね! おぼえたよ!

''長所''
-不正な入力はまったく気にしなくてよい。
--辞書もコンパクトになる。
-年月日を一発で入力してもらえる(年は使わなくてもいい)。
-ユーザさんにとっても分かり安い。

''短所''
-SSPでしか使えません。

*SSPの設定を覚えさせる [#x5454d18]
SSP本体設定で入力されている情報を取得することも可能です。~
下記のページを参照してください。~
[[SSPに入力されたユーザ情報を使う]]

''長所''
-ユーザへの負担が少ない。
--多くのゴースト全てに名前と誕生日を記入するのは大変。
-ついでにユーザ名や性別も取得できる

''短所''
-SSPでしか使えない。
-前もって本体設定に情報が入力されていないといけない。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS