DateTime 変数を Excel の日付に変換する最も簡単な方法は、次のとおりです。
let exceldate = int(DateTime)
確かに、これは c# であり、f# ではありませんでした。これは、小数が時間を表し、int 部分が日付を表すため、機能するはずです。これを試したところ、f# でエラーが返されました。
The type 'DateTime' does not support a conversion to the type 'int'
では、どうすればExcelの日付に戻すことができますか?
より具体的には、開始日から終了日までの期間の月 1 のベクトルを作成しようとしています。ベクトル出力と開始日と終了日はどちらも float、つまり Excel の日付です。ここで私の不器用な最初の試み:
let monthlies (std:float) (edd:float) =
let stddt = System.DateTime.FromOADate std
let edddt = System.DateTime.FromOADate edd
let vecstart = new DateTime(stddt.Year, stddt.Month, 1)
let vecend = new DateTime(edddt.Year, edddt.Month, 1)
let nrmonths = 12 * (edddt.Year-stddt.Year) + edddt.Month - stddt.Month + 1
let scaler = 1.0 - (float(stddt.Day) - 1.0) / float(DateTime.DaysInMonth(stddt.Year , stddt.Month))
let dtsvec:float[] = Array.zeroCreate nrmonths
dtsvec.[0] <- float(vecstart)
for i=1 to (nrmonths-1) do
let temp = System.DateTime.FromOADate dtsvec.[i-1]
let temp2 = temp.AddMonths 1
dtsvec.[i] = float temp2
dtsvec
これは変換の問題のために機能せず、かなり複雑で必須です。
どうすれば変換できますか? これをより機能的に行うにはどうすればよいですか?ありがとう