DOBON.NETプログラミング道掲示板
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
No35450 の記事
■35450
/ )
Re[1]: Excelの数値 -> 日付みたいな関数?
□投稿者/ Hongliang
大御所(642回)-(2023/06/12(Mon) 08:47:46)
DateTime.FromOADate(Double)
で、1899/12/30からの経過日数をDateTime型に変換できます。
ほぼExcelと同等ですが、61未満の間は日付にズレが生じます(Excelだと0が1900/1/0、60が1900/2/29という存在しない日付になります)。時刻部分は変わりません。
// あとExcelには1904年から計算するというオプションもあるみたいですが…。
そこからTimeSpanを取り出すには、以下のようにします。
TimeSpan span = DateTime.FromOADate(...) - new DateTime(1899, 12, 30);
あと、30分を意味する 1/48 は循環小数なので厳密には 0.020833333333... と3が無限に続きます。
0.020833だと00:29:59.971...となって、
Excelだとミリ秒以下を四捨五入して0:30:00と表示されますが、
DateTime.FromOADateはミリ秒まで計算して29分59秒971扱いになります。
DateTime.FromOADateに渡す値として0.02083333まで桁を伸ばすと正確な30分に変換されます。
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
返信
削除キー/
編集
削除
Mode/
通常管理
表示許可
Pass/
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
-
Child Tree
-