我想知道如何計算當前周的開始和結束日期? 我發現這不是在標準的Android庫或類似date4j的庫中實現的。在Android上獲取開始和結束的時間
如果有一些簡單明瞭的方法來實現這一點?或者我必須再次實施自行車?
謝謝。
我想知道如何計算當前周的開始和結束日期? 我發現這不是在標準的Android庫或類似date4j的庫中實現的。在Android上獲取開始和結束的時間
如果有一些簡單明瞭的方法來實現這一點?或者我必須再次實施自行車?
謝謝。
也許MonthDisplayHelper可能是您的幫助。
祝你好運!
嘗試java.util.Calendar.getFirstDayOfWeek()...然後可以很容易地計算出一週的最後一天:http://developer.android.com/reference/java/util/Calendar.html#getFirstDayOfWeek()
如何通過android.text.format.Time實現此目的? –
它不需要太多代碼就可以用date4j來做到這一點。 的計算一週的第一天例如:
private void firstDayOfThisWeek(){
DateTime today = DateTime.today(TimeZone.getDefault());
DateTime firstDayThisWeek = today; //start value
int todaysWeekday = today.getWeekDay();
int SUNDAY = 1;
if(todaysWeekday > SUNDAY){
int numDaysFromSunday = todaysWeekday - SUNDAY;
firstDayThisWeek = today.minusDays(numDaysFromSunday);
}
System.out.println("The first day of this week is : " + firstDayThisWeek);
}
上面遵循慣例,週日是一週的開始。在某些司法管轄區,該慣例不適用,因此您需要更改此類案例的代碼。
使用Joda-Time 2.3庫這種日期時間工作通常更容易。
採取從this answer到類似的問題。
LocalDate now = new LocalDate();
System.out.println(now.withDayOfWeek(DateTimeConstants.MONDAY));
System.out.println(now.withDayOfWeek(DateTimeConstants.SUNDAY));
您可以撥打isBefore/isAfter和minusWeeks/plusWeeks讓過去/未來價值。
這個工作對我來說...
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
cal.set(Calendar.DAY_OF_WEEK, cal.MONDAY);
String firstWkDay = String.valueOf(cal.getTime());
//cal.set(Calendar.DAY_OF_WEEK, cal.SUNDAY);
cal.add(Calendar.DAY_OF_WEEK, 6);
String lastWkDay = String.valueOf(cal.getTime());
在這一週的最後一天,你可以使用cal.set(Calendar.DAY_OF_WEEK, cal.SUNDAY);
但它在某些設備上
「但它在某些設備上返回上一個星期日」,你能解釋爲什麼嗎?因爲我認爲我的設備有這個問題。 –
簡短的回答是... Android碎片。 嘗試上面寫的代碼片段 – aphoe
返回之前的星期天這是我一直在使用中獲得什麼日期:獲取當前一週的日期中的Android]的
Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
c.setFirstDayOfWeek(Calendar.MONDAY);
startOfWeek = c.getTime();
可能重複(http://stackoverflow.com/questions/10451784/getting-the-dates-of-the-current-week- in-android) –