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