搾りたての工数と干からびた社畜

99%の雑記と1%プログラミングメモなど

【VB.NET】時刻の大小を比較したい時

そんな時はTIMESPAN.COMPARE(引数1、引数2)を使用する。

 

 
・サンプルコード
If TimeSpan.Compare(DateTime.Now.TimeOfDay, New TimeSpan(12, 0, 0)) = -1 Then
  MsgBox("午前ですよ")
Else
  MsgBox("午後ですよ")
End If
 
 
12時より前の時刻なら午前ですよというメッセージボックスを表示。
12時以降であれば、午後ですよというメッセージボックスを表示。
 
因みにCompare(引数1, 引数2)の戻り値はinteger型で
引数1 < 引数2の時の戻り値は-1
引数1 = 引数2の時の戻り値は0
引数1 > 引数2の時の戻り値は1
 

正しいシグネチャを持つアクセス可能なMainメソッドは'画面名'に見つかりませんでした

というVB.NETのエラーに対する解決法メモ

 

f:id:enfor:20150119221322j:plain

・クラス内でmain関数を定義している場合

→mainメソッドをPublic Sharedとして定義

 

・モジュール内でmain関数を定義している場合

→mainメソッドをPublicとして定義

 

 

f:id:enfor:20150119221406j:plain

 

因みに、プロジェクトのプロパティからアプリケーションタブの「アプリケーションフレームワークを有効にする」にチェックがある場合、スタートアップフォームにのコンボボックスに「Sub Main」が追加されている。

 

f:id:enfor:20150119221532j:plain

 「アプリケーションフレームワークを有効にする」のチェックを外した時且つmain関数を定義している方法が上記以外の場合に発生するエラーみたいです。

気が向いたらまた調べて追記します。

 

 

追記と修正:

アプリケーションフレームワークを無効にした状態で、返り値がBoolean型やString型のFunctionの場合、エラーが出る。

f:id:enfor:20150119221052j:plain

 

戻り値がInteger型だと何も出ない

f:id:enfor:20150119221153j:plain

 

正直、アプリケーションフレームワークを有効にすればいいだけの話な気がしてきました。

【備忘録】構築されているプロジェクトのプロセッサアーキテクチャ云々のエラー

 

f:id:enfor:20150106235300j:plain

オラクルのODP.NET接続のために「Oracle.DataAccess.dll」を参照した際に、上記のような警告が出ることがある。

プロジェクトのプロパティにあるコンパイル項目の対象のCPUを変更することで解決しました。f:id:enfor:20150106235941j:plain

今回はAnyCPUからx86に変更。

すると、下記のように警告が消えました。

 

f:id:enfor:20150107000311j:plain