C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■86264 / 6階層)  バイナリデータを読んで、日付などの形にする方法について
□投稿者/ へなちょこ (11回)-(2018/01/09(Tue) 21:19:27)
No86252 (魔界の仮面弁士 さん) に返信

こちらも返信が遅れて申し訳ございません!

> ゆえに今回は、Function を作らずとも FromFileTime メソッドを直接呼び出すだけで十分かと思います。
>
>   'x = TimeCal(longValue)
>   x = Date.FromFileTime(longValue)

なるほど。こんなシンプルなもので十分だったんですね。
確かに、ご説明いただいた通りですね。

> 意図的に使い分けているのであれば良いのですが、もしかしたら
> Date 型の存在をご存じなかったのでは…ということで紹介しておきます。

そういうことなんですね!
全然分かっていませんでした!
「なんで、これには「System.」が付いているんだろう?」って思っていたので、
ご説明いただき、大変助かりました!

> これを踏まえた上で、
>>  Dim Time1 As System.DateTime
>>  Time1 = System.DateTime.FromFileTime(getTime)
>>  Return Time1
> で使われている System.DateTime を Date 表記に書き換えると、
>    Dim Time1 As Date
>    Time1 = Date.FromFileTime(getTime)
>    Return Time1
> のようになります。(ただの別名表記なので、どちらでも結果は一緒です)
>
> また、必ずしも変換結果を変数に受け取る必要は無いので、上記 3 行を
>   Return Date.FromFileTime(getTime)
> と一行にまとめて書くこともできます。コーディングに慣れるまでは
> 変数に一度受けておいた方が、処理の流れを追いやすいかも知れませんけれどね。

なるほど。
どちらでも結果は一緒であっても、混乱しないように統一した方が良いですね。

>> Catch exp As ArgumentOutOfRangeException
>>  Throw
>> End Try
> 今回使用した FromFileTime メソッドが ArgumentOutOfRangeException の例外を発生させるケースは
>  ・引数の値が小さすぎる(getTime が 0 未満だった場合)
>  ・引数の値が大きすぎる(getTime が 2650467744000000000 以上の場合)
> に限られます。
>
> つまり、最小値と最大値は下記の範囲になります。
>  Dim 最小値 = Date.FromFileTime(0L)
>  Dim 最大値 = Date.FromFileTime(2_650_467_743_999_999_999L)
>
>
> この範囲を超えた場合は、例外処理によって Catch 句に入るわけですが、
> 先のコードでは、Catch 句で「単に Throw しているだけ」なので、
> 実際にはこのような例外処理は、ほとんど意味が無かったりします。

例外処理に関しては、これから整理していかなければいけないと思っていたので、考え方が分かり、
大変参考になりました!
他の箇所に関しても、どのような例外があるか考えてみます。

ご丁寧な説明、誠にありがとうございました!
また何か質問してしまうかもしれませんが、その際はご教授いただければ幸いです。
よろしくお願いします。
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[5]: バイナリデータを読んで、日付などの形にする方法につ.. /魔界の仮面弁士 返信無し
 
上記関連ツリー

バイナリデータを読んで、日付などの形にする方法について / へなちょこ (18/01/03(Wed) 00:23) #86240
Re[1]: バイナリデータを読んで、日付などの形にする方法につ.. / Azulean (18/01/03(Wed) 00:44) #86241
│└ Re[2]: バイナリデータを読んで、日付などの形にする方法につ.. / へなちょこ (18/01/03(Wed) 14:06) #86242
│  └ Re[3]: バイナリデータを読んで、日付などの形にする方法につ.. / Azulean (18/01/03(Wed) 14:37) #86243
│    └ Re[4]: バイナリデータを読んで、日付などの形にする方法につ.. / へなちょこ (18/01/03(Wed) 17:39) #86245
│      ├ Re[5]: バイナリデータを読んで、日付などの形にする方法につ.. / Azulean (18/01/03(Wed) 19:36) #86247
│      │└ Re[6]: バイナリデータを読んで、日付などの形にする方法につ.. / へなちょこ (18/01/03(Wed) 23:51) #86248
│      └ Re[5]: バイナリデータを読んで、日付などの形にする方法につ.. / 魔界の仮面弁士 (18/01/05(Fri) 16:27) #86252 解決済み
│        └ バイナリデータを読んで、日付などの形にする方法について / へなちょこ (18/01/09(Tue) 21:19) #86264 ←Now
Re[1]: バイナリデータを読んで、日付などの形にする方法につ.. / Jitta (18/01/03(Wed) 17:36) #86244
  └ Re[2]: バイナリデータを読んで、日付などの形にする方法につ.. / ?????? (18/01/03(Wed) 23:52) #86249 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信