我想使用F#显示当月的日历(类似于Linux命令'cal')。在F#中是否存在本地方式?
答案 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())