[[誕生日を覚えさせる]]
ユーザの誕生日を覚えさせよう。~
他の日付でも基本はいっしょ。~
時刻を覚えさせる場合にも応用できるかも。
----
#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でしか使えない。
-前もって本体設定に情報が入力されていないといけない。