如何计算一个月内的星期二数?
使用calender.set我们可以设置特定月份,之后如何计算当月的星期一,星期二等数量?
代码是:
public static void main(String[] args )
{
Calendar calendar = Calendar.getInstance();
int month = calendar.MAY;
int year = 2012;
int date = 1 ;
calendar.set(year, month, date);
int MaxDay = calendar.getActualMaximum(calendar.DAY_OF_MONTH);
int mon=0;
for(int i = 1 ; i < MaxDay ; i++)
{
calendar.set(Calendar.DAY_OF_MONTH, i);
if (calendar.get(Calendar.DAY_OF_WEEK) == calendar.MONDAY )
mon++;
}
System.out.println("days : " + MaxDay);
System.out.println("MOndays :" + mon);
}
Run Code Online (Sandbox Code Playgroud)
没有在这里编写完整的代码是一般的想法:
Calendar c = Calendar.getInstance();
c.set(Calendar.MONTH, Calendar.MAY); // may is just an example
c.set(Calendar.YEAR, 2012);
int th = 0;
int maxDayInMonth = c.getMaximum(Calendar.MONTH);
for (int d = 1; d <= maxDayInMonth; d++) {
c.set(Calendar.DAY_OF_MONTH, d);
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
if (Calendar.THURSDAY == dayOfWeek) {
th++;
}
}
Run Code Online (Sandbox Code Playgroud)
此代码应计算星期四的数量.我相信你可以修改它来计算一周中所有天数.
显然这段代码效率不高.它迭代了一个月的所有日子.您可以通过获取第一天的星期几,月中的天数以及(我相信)您可以编写代码来计算每周的每一天的数量,而不会在整个月内进行迭代来优化它.
| 归档时间: |
|
| 查看次数: |
4028 次 |
| 最近记录: |