小编Tyl*_*ler的帖子

Java GregorianCalendar和Calendar错误放置周末,2010年8月和9月的一个月内

我正在尝试使用Calendar或Gregorian Calendar迭代并创建日期网格.然而,他们似乎都认为2010年8月有30天,而9月2日和3月是周末.这就像日历错误的一年,但我已经检查了那个参数.这里有一些摘录.

startDate.set(2010, 8, 28);

SchedulerCalendar currentDate = (SchedulerCalendar) startDate.clone(); 
  for(int i = 0; i<daysDisplayed; i++){ 
   newDate = new TextView(this); 
   String dateString = currentDate.get(Calendar.MONTH)+"/"+currentDate.get(Calendar.DATE);
   //+"/"+currentDate.get(Calendar.YEAR);
   newDate.setText(dateString);
   newDate.setId(i+1);
   newDate.setWidth(blockWidth);
   newDate.setHeight(DATE_HEIGHT);
   dateBar.addView(newDate);
   currentDate.add(Calendar.DATE, 1);
  }


 private class SchedulerCalendar extends GregorianCalendar {
  @Override
  public void add(int field, int value) {
   super.add(field, value);
   if(this.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY) {
    if(value>=0) super.add(Calendar.DATE, 2);
    if(value<0) super.add(Calendar.DATE, -1);
   }
   if(this.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY) {
    if(value>=0) super.add(Calendar.DATE, 1);
    if(value<0) super.add(Calendar.DATE, -2);
   }
  }
 }
Run Code Online (Sandbox Code Playgroud)

java android gregorian-calendar

0
推荐指数
1
解决办法
1329
查看次数

标签 统计

android ×1

gregorian-calendar ×1

java ×1