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

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

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

Re[4]: DateTimeを数値に変換


(過去ログ 75 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■43656 / inTopicNo.1)  DateTimeを数値に変換
  
□投稿者/ MMM (1回)-(2009/11/15(Sun) 18:20:42)

分類:[.NET 全般] 

Excel2007で日時(2009/11/15 18:00:00)を入力して、保存したファイル(.xlsx)の中身を見ると、数値(40132.75)になっていました。
.NETではどのようなロジックで変換すればよいのでしょうか?
引用返信 編集キー/
■43657 / inTopicNo.2)  Re[1]: DateTimeを数値に変換
□投稿者/ 魔界の仮面弁士 (1389回)-(2009/11/15(Sun) 18:24:36)
No43656 (MMM さん) に返信
> Excel2007で日時(2009/11/15 18:00:00)を入力して、保存したファイル(.xlsx)の中身を見ると、数値(40132.75)になっていました。
> .NETではどのようなロジックで変換すればよいのでしょうか?

Dim dt As Date = #11/15/2009 6:00:00 PM#
Dim value As Double = dt.ToOADate()

Dim xlsxValue As Double = 40132.75#
Dim result As Date = Date.FromOADate(xlsxValue)
引用返信 編集キー/
■43666 / inTopicNo.3)  Re[2]: DateTimeを数値に変換
□投稿者/ みきぬ (651回)-(2009/11/16(Mon) 10:10:07)
> Dim value As Double = dt.ToOADate()

> Dim result As Date = Date.FromOADate(xlsxValue)

手元の Excel2007 で確認したところ、若干ずれがありますね。
問題になることはあまりないと思いますが。

-1 以下 … Excel では扱えない
0 … Excel では 1900/1/0、ToOADate() で 1899/12/30
1 … Excel では 1900/1/1、ToOADate() で 1899/12/31
(中略)
59… Excel では 1900/2/28、ToOADate() で 1900/2/27
60… Excel では 1900/2/29、ToOADate() で 1900/2/28

61… Excel では 1900/3/1、ToOADate() でも 1900/3/1
引用返信 編集キー/
■43672 / inTopicNo.4)  Re[3]: DateTimeを数値に変換
□投稿者/ まさる (117回)-(2009/11/16(Mon) 12:04:35)
まさる さんの Web サイト
No43666 (みきぬ さん) に返信
>>Dim value As Double = dt.ToOADate()
>
>>Dim result As Date = Date.FromOADate(xlsxValue)
>
> 手元の Excel2007 で確認したところ、若干ずれがありますね。

この辺の仕様が関係してそうですね。

Joel on Software(日本語翻訳版):はじめてのBillGレビューのこと
http://local.joelonsoftware.com/wiki/%E3%81%AF%E3%81%98%E3%82%81%E3%81%A6%E3%81%AEBillG%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC%E3%81%AE%E3%81%93%E3%81%A8


引用返信 編集キー/
■43673 / inTopicNo.5)  Re[4]: DateTimeを数値に変換
□投稿者/ みきぬ (653回)-(2009/11/16(Mon) 12:21:22)
以前にもやりとりした覚えがあったので、過去スレッドを発掘してみました。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=29863&KLOG=53
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -