[解決済み] Excelの連番を.NETのDateTimeに変換するには?
2023-04-05 04:51:22
質問
エクセルのシリアルデータから.NETの日付時刻に変換する方法を教えてください。
例えば、39938は2009年05月05日です。
どのように解決するのですか?
39938は1900年1月1日からの日数ですか?
その場合、フレームワークライブラリの関数
DateTime.FromOADate()
.
この機能
をカプセル化します。
をカプセル化し、境界チェックを行います。
歴史的な価値のために、可能な実装を紹介します。
(C#)
public static DateTime FromExcelSerialDate(int SerialDate)
{
if (SerialDate > 59) SerialDate -= 1; //Excel/Lotus 2/29/1900 bug
return new DateTime(1899, 12, 31).AddDays(SerialDate);
}
VB
Public Shared Function FromExcelSerialDate(ByVal SerialDate As Integer) As DateTime
If SerialDate > 59 Then SerialDate -= 1 ' Excel/Lotus 2/29/1900 bug
Return New DateTime(1899, 12, 31).AddDays(SerialDate)
End Function
[更新】です。]
うーん・・・。ざっと検証してみたところ、実際は2日分の休みになりますね。 どこが違うのかよくわかりません。
OK:問題は今修正されました。詳細はコメントをご覧ください。
関連
-
[解決済み] C++/CLIにおけるキャレット('^')の意味は?
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] DateTime型の誕生日から年齢を計算するにはどうしたらいいですか?
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] オブジェクトの配列を日付のプロパティでソートする方法は?
-
[解決済み] DateTimeとDateTimeOffsetの比較
-
[解決済み] datetimeをdateに変換するにはどうすればよいですか?
-
[解決済み] Pythonで日付をdatetimeに変換する
-
[解決済み] C#でDateTimeオブジェクトの日付の時間部分のみを削除する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ServicePointManagerは、*スキームのプロキシをサポートしていません[closed]。
-
[解決済み] VB.NETでプログラムパスを取得する?
-
[解決済み] <Database> コンテキストを支えるモデルが、データベース作成後に変更されました。
-
[解決済み] C++/CLIにおけるキャレット('^')の意味は?
-
[解決済み] リファレンスの追加にSystem.Web.Mvcが表示されないのはなぜですか?
-
[解決済み] AndroidでWCFサービスを利用する方法
-
[解決済み] gacutil.exeはどこですか?
-
[解決済み] LINQ: フィルタリング基準で SingleOrDefault と FirstOrDefault() を使用する場合
-
[解決済み] このコンピュータには、.NET Framework 4.6またはそれ以降の更新プログラムがすでにインストールされています。
-
[解決済み] RelativeSourceでWPFバインディングを使用するにはどうしたらいいですか?