-PR-
解決済み

今日が6月か、9月か、12月か、3月なら

  • 暇なときにでも
  • 質問No.91429
  • 閲覧数36
  • ありがとう数7
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 47% (767/1609)

今日が6月か、9月か、12月か、3月なら「予定月です」と表示する最も短いスクリプトを教えていただけないでしょうか。caseとかを使えばいいものでしょうか。

素人がやると下記のようになってしまいます。
<% If Month(date()) = 6 or Month(date()) = 9 or Month(date()) = 12 or Month(date()) = 3 then %>
予定月です。
<% Else %>
違います。
<% End if %>

#プログミングの初心者のため、初歩的なところを確認したいと思っての質問です。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル9

ベストアンサー率 66% (47/71)

最も短いかどうかは解りませんが。
#しかも今ごろですが。
No.1の方の回答どおりだと思います。VBScriptで表記すると

#インデントのため行頭に全角スペース入れてます。
<%
 If (CInt(Month(Date())) Mod 3 = 0 Then
  Response.Write("予定月です。<br>" & vbCrLf)
 Else
  Response.Write("違います。<br>" & vbCrLf)
 End If
%>

かと。
「最も短い」にこだわる理由はわかりませんが。
別に求める結果が同じなら書き方は問わないと思います。
「スマートで解りづらいソース」より「稚拙でも解りやすいソース」の方が
私はありがたいです。

「俺のロジック、クレーバーだろ?!」と自慢したいのなら別ですが。

それと余計なお世話かもしれませんが、s-holmesさん。
「初心者」であるのならこういった場で質問するより基礎をしっかり学ぶ方が
先だと思いますよ。スマートなロジックは基礎の上に成り立ちます。
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル9

ベストアンサー率 33% (30/90)

ASPの書き方は知らないので、ロジックとしてのアドバイスです。
剰余演算子はありませんか?
つまり、わり算をした時の商ではなくて、「余り」を返してくれる演算子です。
C言語等では%がそれに当たります。
この剰余演算子があるのなら、if文を
「月を3で割って、余りが0ならば真」というのが良いかと。


  • 回答No.2
レベル8

ベストアンサー率 48% (12/25)

Case文であれば短くはないですけど、予定月の変更や、別の文字を表示するといった変更などが楽そうですね。

<%
Select Case Month(date())
 Case 3,6,9,12
  Response.Write("予定月です。")
 Case Else
  Response.Write("違います。")
End Select
%>

あと、IF文に「Month(date())」が4つある事で4回の「Month(date())」を実行している気がします。IF文を使うのであれば変数に入れた値に対して判定するほうがいいですね。
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ