Android 在安卓系统中,我如何确定哪几天是工作日还是周末?

Android 在安卓系统中,我如何确定哪几天是工作日还是周末?,android,locale,Android,Locale,Qt/Qlocale有一个weekdays()方法,它为您提供区域设置的周天数 Android似乎只有Calendar.getFirstDayOfWeek()方法,这没有帮助-en_GB和en_US在日历中分别将星期一和星期天作为一周的第一天,但这两个地区都将星期六/星期天定义为周末 有人问了一个类似的问题,但被搁置了:不会: 一旦有了一周中的某一天,您就可以使用简单的开关或HashMap来确定它是工作日还是周末 SimpleDateFormat sdf = new SimpleDateForm

Qt/Qlocale有一个weekdays()方法,它为您提供区域设置的周天数

Android似乎只有
Calendar.getFirstDayOfWeek()
方法,这没有帮助-en_GB和en_US在日历中分别将星期一和星期天作为一周的第一天,但这两个地区都将星期六/星期天定义为周末

有人问了一个类似的问题,但被搁置了:

不会:


一旦有了一周中的某一天,您就可以使用简单的开关或HashMap来确定它是工作日还是周末

SimpleDateFormat sdf = new SimpleDateFormat("EEE");
Date d = new Date();
String dayOfTheWeek = sdf.format(d);
switch(dayOfTheWeek){
    case "Mon":
    case "Tue":
    case "Wed":
    case "Thu":
    case "Fri":
        System.out.println("Weekday");
        break;

    default:
        System.out.println("Weekend");
        break;
}

您需要使用ICU4J库并在日历上调用getWeekData()->

该库支持波斯语(Jalali)和阿拉伯语(Hijri,Hijri civil)日历以及许多其他日历

Calendar.getInstance(new ULocale("fa_IR@calendar=persian"))
Calendar.getInstance(new ULocale("ar_IQ@calendar=islamic-civil"))
Calendar c = Calendar.getInstance(new ULocale("en_GB@calendar=gregorian"))

c.getFirstDayOfWeek()
c.getWeekData().weekendOnset // weekend start
c.getWeekData().weekendCease // weekend end

ICU4J的一个较小的替代方案是使用我的库。本地化周末查询的示例:

Locale yemen = new Locale("ar", "YE");
Weekmodel model = Weekmodel.of(yemen);
System.out.println(
    "Weekend: " + model.getStartOfWeekend() + " - " + model.getEndOfWeekend()
); // Weekend: THURSDAY - FRIDAY

PlainDate today = SystemClock.inLocalView().today();
System.out.println(today.isWeekend(yemen));

基础数据的来源基于CLDR(与ICU4J中相同)。

您的问题似乎已经指向了这一点。请看一看。注意:API不提供工作日,但允许您在设备位置调用API时知道这是否是工作日/假日等


如果那个帖子完全回答了你的问题,请考虑将你的问题标记为一个重复。

OP询问如何知道一周中哪一天是周末。这个答案没有帮助,但他说:“两个地区都将周六/周日定义为周末”,这让他可以确定这一天是否是周六/周日。我指的是另一个问题,它提到了伊朗的周末。我应该强调这应该适用于不同的地区-周末可能完全不同(星期五/星期六)。但是如果我的活动地区是阿拉伯语或希伯来语,对周末的定义不同怎么办?很明显,我希望这能在所有地区都适用。
Locale yemen = new Locale("ar", "YE");
Weekmodel model = Weekmodel.of(yemen);
System.out.println(
    "Weekend: " + model.getStartOfWeekend() + " - " + model.getEndOfWeekend()
); // Weekend: THURSDAY - FRIDAY

PlainDate today = SystemClock.inLocalView().today();
System.out.println(today.isWeekend(yemen));