Windows 8.1のモバイル機は良いもんですねー。
必要ある処理が出てきたら、アプリ開発っとか大げさな事を言わなくても大丈夫。
コマンドモード(Windows PowerShell)でもって、その場でもパパっと作る事が出来て、作ったマシンでそのまま使えてしまう身軽さは、しみるくらいありがたい。
参考までに
PowerShellを使えるように設定する記事はこちらです
■どういうコマンドかというと
WEEK 日付(yyyyMMddか、yyyy-MM-dd形式か、yyyy/MM/dd形式)
って入力するだけでその日付の曜日が表示されるだけのものです。
念のためパラメータ0だと当日の曜日を表示するようにしてあります。
#曜日の取得 FUNCTION GLOBAL:WEEK($P_VALUE=-1) { $oRX1 = $(NEW-OBJECT Regex("^[0-9]{4}(\/|\-)[0-9]{2}(\/|\-)[0-9]{2}$")); $oRX2 = $(NEW-OBJECT Regex("^[0-9]{8}$")); [String]$sVALUE = ""; if($oRX1.IsMatch($P_VALUE)) { $sVALUE = [String]$P_VALUE; } elseif($oRX2.IsMatch($P_VALUE)) { $sVALUE = [String]$P_VALUE; $sVALUE = $sVALUE.SubString(0,4) + "/" + $sVALUE.SubString(4,2) + "/" + $sVALUE.SubString(6,2); } elseif($P_VALUE.Equals(0)) { #当日 $sVALUE = $([DateTime]::Now).ToString("yyyy/MM/dd"); } else { WRITE-OUTPUT "パラメータはyyyyMMddか、yyyy/MM/ddか、yyyy-MM-ddでお願いします。"; RETURN; #強制終了 } #日付区切りは-と/が混在しててもokのように作ってます [char[]]$aC = $(NEW-OBJECT char[] 2); $aC[0] = "-"; $aC[1] = "/"; $aDATE = $sVALUE.Split($aC); $oDATE = $(NEW-OBJECT DateTime($aDATE[0],$aDATE[1],$aDATE[2])); $iWEEK = [Int16]$oDATE.DayOfWeek.ToString("d"); RETURN WEEKNAME $iWEEK; #自作関数で曜日数字を曜日名に変換します。 } FUNCTION GLOBAL:WEEKNAME($P_VALUE="") { $sRES = ""; switch($P_VALUE) { "0" {$sRES = "日"; } "1" {$sRES = "月"; } "2" {$sRES = "火"; } "3" {$sRES = "水"; } "4" {$sRES = "木"; } "5" {$sRES = "金"; } "6" {$sRES = "土"; } "99" {$sRES = "ALL";} "日" {$sRES = "0"; } "月" {$sRES = "1"; } "火" {$sRES = "2"; } "水" {$sRES = "3"; } "木" {$sRES = "4"; } "金" {$sRES = "5"; } "土" {$sRES = "6"; } "ALL"{$sRES = "99"; } default{$sRES="?"; } } RETURN $sRES; }曜日の数字から名前を変換するWEEKNAME()関数ですが、今回のコマンドでは使わない内容もswitchで列挙していますが、これは他のコマンドでも利用したかったからです。
そういや、if文やwhile文などはC#言語と大変似ているPowerShellですが、switch文は文法が結構違ってて面白いですね。
たとえば、PS4の発売日(2014年2月22日)って何曜日だっけ??
というような時は
WEEK 20140222
WEEK 2014-02-22
WEEK 2014/02/22
のどれかで土と表示されます。
モバイル機といいますが、こうやって小さくとも何かをパチパチ作るのって、この上なく楽しくて良いですねー。