出勤管理

时间:2011-02-14 11:34:59

标签: c#

我想检查登录时间是上午或下午,否则将am复选框设为true pm是真的。时间是下午1点以下,上午复选框为真,否则下午复选框

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);