我試圖找出有多少星期一,例如,有在某一年的具體月份。 是否有一個具體年度的日曆的java的導入庫?如何計算每週多天,一個月?
-1
A
回答
2
java.time
使用內置到Java 8和後來的java.time類。
YearMonth month = YearMonth.of(2017, 1);
LocalDate start = month.atDay(1).with(TemporalAdjusters.nextOrSame(DayOfWeek.MONDAY));
int count = (int) ChronoUnit.WEEKS.between(start, month.atEndOfMonth()) + 1;
System.out.println(count);
0
的Java 7 + JodaTime
import org.joda.time.DateTimeConstants;
import org.joda.time.Days;
import org.joda.time.LocalDate;
import java.util.Date;
public class Test {
public static int getNumberOfMondays(Date start, Date end) {
LocalDate startDate = LocalDate.fromDateFields(start);
LocalDate endDate = LocalDate.fromDateFields(end);
int days = Days.daysBetween(startDate, endDate).getDays();
int mondayCount = 0;
//Get number of full weeks: 1 week = 1 Monday
mondayCount += days/7;
int remainder = days % 7;
if (startDate.dayOfWeek().get() == DateTimeConstants.MONDAY || startDate.dayOfWeek().get() > (startDate.dayOfWeek().get() + remainder) % 8) {
mondayCount++;
}
return mondayCount;
}
}
0
連老`其所有缺點Calendar'-API實現瞭解決方案:
int year = 2017;
int month = Calendar.JANUARY;
int dow = Calendar.MONDAY;
GregorianCalendar gcal = new GregorianCalendar(year, month, 1);
while (gcal.get(Calendar.DAY_OF_WEEK) != dow) {
gcal.add(Calendar.DAY_OF_MONTH, 1);
}
System.out.println(gcal.getActualMaximum(Calendar.DAY_OF_WEEK_IN_MONTH)); // 5
新的Java-8-API不有DAY_OF_WEEK_IN_MONTH場(嚴格意義上的),但你可以這樣做:
int year = 2017;
int month = 1;
LocalDate ld1 =
LocalDate.of(year, month, 1).with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));
LocalDate ld2 =
LocalDate.of(year, month, 1).with(TemporalAdjusters.lastInMonth(DayOfWeek.MONDAY));
System.out.println(ChronoUnit.WEEKS.between(ld1, ld2) + 1); // 5
相關問題
- 1. 如何計算excel中每個月的每月值與每個月的天數?
- 2. 計算每週週一
- 3. Cumulocity /艾斯波:聚合所有天/周/每天/每週/每月
- 4. 計算一個月內的週數
- 5. 每天,每週和每月的總和
- 6. sas每週總計,每月
- 7. PHP,計算和顯示每日,每週和每月統計
- 8. MSSQL每天總計一個月
- 9. 如何計算MySQL中每月每天的綜合瀏覽量?
- 10. 計算每月登錄的天數
- 11. 計算一個月中的天數
- 12. 計算一個月中的天數
- 13. PostgreSQL每月計算一個月後多少次
- 14. 有周數如何計算一週的最後一天?
- 15. Codeigniter從搜索中計算出一天,一週,一個月,一年
- 16. 如何計算一週中的某一天提供的日期和月份
- 17. 每天,每週,每月只顯示一次uialertview一次?
- 18. 計算電子表格中的每週和每月總計
- 19. 計算每週系列的12個月移動平均線,但是停留在月的最後一天
- 20. 計算天,不算週六和週日
- 21. 如何計算mysql中的每週數據的月度數據
- 22. 如何計算一個月中的週數
- 23. 如何在每個月的最後一個週末一天製作觸發器
- 24. 計算每日/每週/每月使用Python
- 25. 一個月內連續兩天用XYZ值在一週內計算
- 26. 每週計算2周SQL
- 27. 每個月的第一天
- 28. 在Android上如何計算3G,每天,每週,每月的WiFi互聯網流量?
- 29. 每週每天設置多個鬧鐘
- 30. 如何通過天計算每週小時data.table R中
看到這裏http://stackoverflow.com/q/8040790/6036446 –
@JuanCNuno不太重複,因爲其他要求專門爲喬達時庫。 –