确定一周的区域工作日和周末日

时间:2010-06-23 15:02:40

标签: windows globalization

在某些国家,周末是周五/周六。

Windows应用程序如何找出用户的周末?

3 个答案:

答案 0 :(得分:1)

Wellll ......我不知道“一个功能”的答案。你需要知道他们在哪里。如果它是一个webapp,你可以追踪他们的IP并找出他们来自哪个国家。如果它是一个Windows应用程序,你可能需要问他们(时钟只提供时区信息,我无法弄清楚从窗口获取更精细的位置的其他地方)。

你可以在MFC中找出GetDayofWeek http://msdn.microsoft.com/en-us/library/1wzak8d0%28VS.80%29.aspx的哪一天

DayofWeek,如果你跳到.Net http://msdn.microsoft.com/en-us/library/system.dayofweek.aspx

您需要一个查找表,其中包含国家/他们考虑周末的日期......您可能需要构建此内容,但您可以从以下网址获取国家/地区列表:http://www.iso.org/iso/english_country_names_and_code_elements

该清单是ISO 3166。

它已更新,应该是您上市的“一站式服务”。从那里,你将匹配“周末”到国家。 http://en.wikipedia.org/wiki/Workweek可能有助于确定各国的周末/工作周。

答案 1 :(得分:1)

以下代码将提供是否被视为周末,并提供不同文化的选项(周末在不同的一天开始/结束):

    /// <summary>
    /// Returns true if the specified date is weekend in given culture
    /// is in. 
    /// </summary>
    public static bool IsItWeekend(DateTime currentDay, CultureInfo cultureInfo)
    {
        bool isItWeekend = false;

        DayOfWeek firstDay = cultureInfo.DateTimeFormat.FirstDayOfWeek;

        DayOfWeek currentDayInProvidedDatetime = currentDay.DayOfWeek;

        DayOfWeek lastDayOfWeek = firstDay + 4;

        if (currentDayInProvidedDatetime == lastDayOfWeek + 1 || currentDayInProvidedDatetime == lastDayOfWeek + 2)
            isItWeekend = true;

        return isItWeekend;         
    }

答案 2 :(得分:0)

ICU项目可能有所帮助。它专为软件内化和全球化而设计。可以使用C / C ++和Java版本。

icu-project.org