0

我想使用 F# 显示当月的日历(类似于 Linux 命令 'cal' )。在 F# 中是否有本地方法?

4

1 回答 1

2

我认为没有任何标准功能可以将当前日历打印到控制台。但是,您可以轻松获得自行打印所需的信息:

open System
open System.Globalization

// Get information about calendar for the current cultural settings
let cal = CultureInfo.CurrentCulture.Calendar
let now = DateTime.Now

// Get days in month from the curretn calendar
for d in 1 .. cal.GetDaysInMonth(now.Year, now.Month) do
  // Create date time and print the date together with a day of week
  let dt = DateTime(now.Year, now.Month, d)
  printfn "%s %A" (dt.ToShortDateString()) dt.DayOfWeek

您可以使用它dt.DayOfWeek来很好地对齐输出,就像cal在 Linux 上所做的那样。

或者,如果您有一些 UI,您可以使用DateTimePickerWindows 窗体中的类型(请参阅MSDN)或 WPF 更好的Calendar控件(请参阅MSDN)。WinForms 控件也可以在 F# 交互中工作:

open System.Windows.Forms

let frm = new Form(Visible=true)
frm.Controls.Add(new DateTimePicker())
于 2013-03-01T01:04:20.620 回答