如何在F#中显示当月的日历?

时间:2013-03-01 00:56:48

标签: f#

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

1 个答案:

答案 0 :(得分: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上所做的那样。

或者,如果您有一些用户界面,则可以使用Windows窗体中的DateTimePicker类型(请参阅MSDN)或对WPF使用更好的Calendar控件(请参阅MSDN )。 WinForms控件也适用于F#interactive:

open System.Windows.Forms

let frm = new Form(Visible=true)
frm.Controls.Add(new DateTimePicker())