我想检查登录时间是上午或下午,否则将am复选框设为true pm是真的。时间是下午1点以下,上午复选框为真,否则下午复选框
答案 0 :(得分:4)
当System.DateTime实现IFormattable时,您可以将格式字符串传递给ToString方法(或者在使用string.Format等时)。其中一个格式字符串是“tt”,它会根据时间给你“AM”或“PM”。
DateTime time = GetAfternoonTime();
Console.Writeline(time.ToString("tt")); //Prints "PM"
time = GetMorningTime();
Console.Writeline(time.ToString("tt")); //Prints "AM"
现在,如果你想将它绑定到一个复选框,例如:
myAMCheckbox.Checked = dateTime.ToString("tt") == "AM";
myPMCheckbox.Checked = dateTime.ToString("tt") == "PM";
显然可以优化该代码,只进行一次字符串转换。此方法的优点还在于您可以通过传入CultureInfo对象轻松地使其全球化。
让这种文化意识到的例子:
CultureInfo culture = new CultureInfo("en-GB");
DateTime dateTime = GetSomeDateTime();
string AMorPM = dateTime.ToString("tt", culture);
myAMCheckbox.Checked = (AMorPM == culture.DateTimeFormat.AMDesignator);
myPMCheckbox.Checked = (AMorPM == culture.DateTimeFormat.PMDesignator);