我正在用Java編寫程序,我需要確定某個日期是否是週末。但是,我需要考慮到,在不同的國家,週末的不同日子會有不同的日子。在以色列,星期五和星期六是一些伊斯蘭國家的週四和週五。欲瞭解更多詳情,你可以檢查出this Wikipedia article。有沒有簡單的方法來做到這一點?如何檢查某個日期是否考慮到Java中的當前語言環境是否是週末?
4
A
回答
0
你可以得到一週的某一天(見:How to determine day of week by passing specific date?)
然後,只需檢查,如果那天是基於選擇無論哪個國家在一個週末。
0
Java Calendar
類具有此功能,getFirstDayOfWeek
method。從Calendar
文檔引用:一週的第一天,在第一週的最少天數(從1到7):
日曆使用兩個參數定義了一個特定於區域的7天周。這些數字是在構建日曆時從地區資源數據中獲取的。它們也可以通過設置其值的方法明確指定。
所以有了這些信息,你就可以計算出一天是否是週末的一天。
final Calendar cal = Calendar.getInstance(new Locale("he_IL"));
System.out.println("Sunday is the first day of the week in he_IL? " + (Calendar.SUNDAY == cal.getFirstDayOfWeek()));
輸出:
Sunday is the first day of the week in he_IL? true
+6
根據這一點,它是en_US的星期天。這裏有個大缺陷:'getFirstDayOfWeek'返回通常是打印日曆上的第一天,而不是工作周的第一天。 http://ideone.com/zX4Pcc – zapl
0
圖書館,Jollyday可以計算假期有用,http://jollyday.sourceforge.net/index.html
2
根據您發送我已經解決了它爲自己的維基以下代碼:
private static final List<String> sunWeekendDaysCountries = Arrays.asList(new String[]{"GQ", "IN", "TH", "UG"});
private static final List<String> fryWeekendDaysCountries = Arrays.asList(new String[]{"DJ", "IR"});
private static final List<String> frySunWeekendDaysCountries = Arrays.asList(new String[]{"BN"});
private static final List<String> thuFryWeekendDaysCountries = Arrays.asList(new String[]{"AF"});
private static final List<String> frySatWeekendDaysCountries = Arrays.asList(new String[]{"AE", "DZ", "BH", "BD", "EG", "IQ", "IL", "JO", "KW", "LY", "MV", "MR", "OM", "PS", "QA", "SA", "SD", "SY", "YE"});
public static int[] getWeekendDays(Locale locale) {
if (thuFryWeekendDaysCountries.contains(locale.getCountry())) {
return new int[]{Calendar.THURSDAY, Calendar.FRIDAY};
}
else if (frySunWeekendDaysCountries.contains(locale.getCountry())) {
return new int[]{Calendar.FRIDAY, Calendar.SUNDAY};
}
else if (fryWeekendDaysCountries.contains(locale.getCountry())) {
return new int[]{Calendar.FRIDAY};
}
else if (sunWeekendDaysCountries.contains(locale.getCountry())) {
return new int[]{Calendar.SUNDAY};
}
else if (frySatWeekendDaysCountries.contains(locale.getCountry())) {
return new int[]{Calendar.FRIDAY, Calendar.SATURDAY};
}
else {
return new int[]{Calendar.SATURDAY, Calendar.SUNDAY};
}
}
相關問題
- 1. 檢查日期是否爲週末PHP
- 2. 日期是否有語言環境?
- 3. 檢查月份中的日期是否是週末
- 4. php檢查輸入的日期是否是週末
- 5. 如何檢查日期是否在XSLT文件的週末
- 6. 如何檢查日期陣列是否屬於當前周
- 7. 如何檢查當前循環中是否存在某個值?
- 8. 如何確定日期是否是在javascript中的週末
- 9. MySQL檢查日期時間列是否在週末期
- 10. 檢查日期是否在某個日期之前PHP laravel
- 11. 正則表達式是否可能知道某個日期是否爲週末?
- 12. jquery如何檢查日期是否小於當前日期
- 13. 如何檢查當前日期是否大於結束日期?
- 14. 如何檢查移動日期是否爲當前日期
- 15. 確定Oracle日期是否在週末?
- 16. 檢查日期是週日還是週末?
- 17. 確定日期是週日/週末java
- 18. 檢查一個字符串是否是當前日期
- 19. 如何確定日期是否是週末(不使用lubridate)
- 20. 查找當前日期是否是同一個日期
- 21. 檢查是否在bash中啓用了特定語言環境
- 22. 如何查看日期是否在週末?
- 23. 如何檢查選定日期是否在當前周或不在JavaScript中?
- 24. 如何檢查今天是否是Java日曆的星期日
- 25. 的Java:檢查是否當前日期是在特定的日子
- 26. 檢查提供的語言環境是否存在
- 27. Java檢查日期是否是下一個星期日
- 28. 檢查當前日期是否在假期日期範圍內
- 29. 檢查當前日期是否已到期
- 30. 如何檢查日期是否在某個星期或季度
在我看來,這似乎不是我信息存儲在一個語言環境中。 –
你應該真的考慮轉換到JodaTime而不是使用Java的日期/時間的東西。 (除非你使用的是Java 8,並且不需要支持以前的Java框架--JodaTime或多或少地內置於Java 8中,名稱不同。) – RenniePet
@RenniePet是[Joda-Time](http ://www.joda.org/joda-time/)是一個很棒的圖書館。但我不明白它對這個問題有什麼幫助。據我所知,Joda-Time不包括週末與週末相關的任何區域信息。 Joda-Time確實支持[ISO 8601](http://en.wikipedia.org/wiki/ISO_8601)標準周,但不支持其他文化周。如果您有一些可以分享的見解或示例代碼,請發佈答案。 –