今日が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 %>
#プログミングの初心者のため、初歩的なところを確認したいと思っての質問です。
No.1
- 回答日時:
ASPの書き方は知らないので、ロジックとしてのアドバイスです。
剰余演算子はありませんか?
つまり、わり算をした時の商ではなくて、「余り」を返してくれる演算子です。
C言語等では%がそれに当たります。
この剰余演算子があるのなら、if文を
「月を3で割って、余りが0ならば真」というのが良いかと。
No.2
- 回答日時:
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文を使うのであれば変数に入れた値に対して判定するほうがいいですね。
No.3ベストアンサー
- 回答日時:
最も短いかどうかは解りませんが。
#しかも今ごろですが。
No.1の方の回答どおりだと思います。VBScriptで表記すると
#インデントのため行頭に全角スペース入れてます。
<%
If (CInt(Month(Date())) Mod 3 = 0 Then
Response.Write("予定月です。<br>" & vbCrLf)
Else
Response.Write("違います。<br>" & vbCrLf)
End If
%>
かと。
「最も短い」にこだわる理由はわかりませんが。
別に求める結果が同じなら書き方は問わないと思います。
「スマートで解りづらいソース」より「稚拙でも解りやすいソース」の方が
私はありがたいです。
「俺のロジック、クレーバーだろ?!」と自慢したいのなら別ですが。
それと余計なお世話かもしれませんが、s-holmesさん。
「初心者」であるのならこういった場で質問するより基礎をしっかり学ぶ方が
先だと思いますよ。スマートなロジックは基礎の上に成り立ちます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) 【VBA】先月分の取得ができない理由が分かりません。 2 2022/04/24 11:16
- Visual Basic(VBA) 今日の日付が過ぎたらその行を削除したい 1 2023/04/01 20:06
- Excel(エクセル) vba シートの並び替え 1 2023/04/19 13:44
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/10 09:15
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Visual Basic(VBA) シートを選択して、1つのPDFにしたいのですが。 5 2022/10/03 20:18
- Visual Basic(VBA) ExcelのVBAでシフト表を作っていますが、バグが出て困っています 2 2022/09/13 11:33
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルに張り付けた写真のフ...
-
onedrive にexcelファイルをア...
-
キヤノン アソビカメラ iNSPiC ...
-
VB.NET Excelを読み込んでDataT...
-
VBAでPDFを作成する際、同じ名...
-
【VB.NET】App.configにファイ...
-
phpのファイルがブラウザで開か...
-
Windows10にデュアルブートでXP...
-
vba 空のデータをSplitする時の...
-
ffftpでファイル取得が0バイト...
-
VB.NETでMSComm が追加できず?
-
VBAでPDF作成をしたあと、指定...
-
aspxをhtmlに変換する方法について
-
ASP.NetでWebアプリ開発の経験...
-
【VB.NET】Excelの最終行までの...
-
マクロで同じフォルダにある画...
-
Excelでボタン(フォームコント...
-
python3 足し算の問題
-
C#からvbsを実行したい
-
visual stduo を使ったc#での...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHP+MySQLで月ごとの数量を表...
-
【PL/SQL】DATE型の時刻の表示...
-
PHPとMysqlを使用した集計表の...
-
データ更新用のphpの記述でデー...
-
PHPでMySQL内のデータの合計値...
-
postgresのカレンダーについて
-
EXCELマクロのSQL文での引用符...
-
bash内のaws cli cloudwatch Lo...
-
日替わりメッセージを表示させ...
-
SQLローダーCSV取込で、囲み文...
-
単一グループのグループ関数で...
-
select文の実行結果に空白行を...
-
テーブルの最後(最新)のレコー...
-
count関数の値をwhere句で使用...
-
【PL/SQL】FROM区に変数を使う方法
-
SELECT FOR UPDATE で該当レコ...
-
2つの列が同じ値の行を取得するSQL
-
レコードの登録順がおかしい
-
<SQL>重複しているデータの場合...
-
AccessのSQL文で1件のみヒット...
おすすめ情報