アプリ版:「スタンプのみでお礼する」機能のリリースについて

htmlファイルのformに入力されたものを、aspで処理したいのですが、
エラーが出て困っています。
html内には
  <INPUT TYPE=text NAME=year VALUE="" SIZE=3>年
  <INPUT TYPE=text NAME=month VALUE="" SIZE=3>月
  <INPUT TYPE=text NAME=day VALUE="" SIZE=3>日
があり、

aspでは
 YEAR=Request.Form("year")
 MONTH=Request.Form("month")
 DAY=Request.Form("day")

ここで、フォームの"month"に6が入力されているときのみ、
YEARに+1925し、ほかの時には+1988したいんです。そこで

Dim NEN
NEN=YEAR
    If month="6" Then
      NEN=DateAdd("yyyy",NEN,1925)
     Else
    NEN=DateAdd("yyyy",NEN,1988)
    End If

としてみたのですが、「型が一致しません」というエラーが出てしまいます。
おそらく最初にYEARに入っている(フォームから戻ってくる)値が文字列なので、それでほかの代数?に入れても文字列として処理されてしまって、1925などの数字を足すことができないのだろうと思うんですが…それであっていますでしょうか。だとしたら、型を一致させたいんですがどうしたらいいでしょうか?
ものすごく醜い感じになってしまっていると思います…すみませんが、
よろしくお願いします。

A 回答 (2件)

6のときにNENが1931という結果になればいいんですか?


でも、日付形式で出てきますから
結果は"1931/01/01"
となると思いますが・・・。

If month="6" Then
NEN=DateAdd("yyyy",NEN,"1925/1/1")
Else
NEN=DateAdd("yyyy",NEN,"1968/1/1")
End If

単純に足し算したいなら
NEN = CInt(YEAR) + 1925
でいいんじゃないですか?

この回答への補足

型が~のエラーはわたしが誕生日のフォームで数値をいれないまま実行ボタンを押していたため発生したものでした。こんなことに時間をとらせてしまって申し訳ありません。どうもありがとうございました!

補足日時:2007/02/15 01:16
    • good
    • 0
この回答へのお礼

あ、そうか…"yyyy"の部分だけ算出されるわけじゃないのですね。
CInt(YEAR)というのは初めて聞きました。授業でちょっとかじっただけなものですから…またやってみてわからなければ、質問させていただきます。どうもありがとうございました。

お礼日時:2007/02/14 11:23

DateAddの引数に入れる値(順番)が違うのでは?


VB.NET2003の場合ですが、 dateAdd(DateInterval.Year , 10 , dt) の形式だと思うのですが。

この回答への補足

すみません、型がどうこうのエラーはわたしが誕生日のフォームのところに数値をいれないまま実行ボタンを押していたため発生したものでした。こんなことに時間をとらせてしまって申し訳ありません。どうもありがとうございました!

補足日時:2007/02/15 01:14
    • good
    • 0
この回答へのお礼

そうなんですか…一度、順序を変えてやってみます!どうもありがとうございます。

お礼日時:2007/02/14 11:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!