给定年月,得到每一天都是星期几?
比如2008 12
你就知道一号是星期一,二号星期二,...今天(12-9)星期二(这些信息将保存在DayInfo里,满足今天的话就要把selected设为true)
public class DayInfo {
private int id;
private String name;
private boolean selected=false;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isSelected() {
return selected;
}
public void setSelected(boolean selected) {
this.selected = selected;
}
}
然后在List中保存一个月的信息
比如2008 12
你就知道一号是星期一,二号星期二,...今天(12-9)星期二(这些信息将保存在DayInfo里,满足今天的话就要把selected设为true)
public class DayInfo {
private int id;
private String name;
private boolean selected=false;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isSelected() {
return selected;
}
public void setSelected(boolean selected) {
this.selected = selected;
}
}
然后在List中保存一个月的信息
package test;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;/**
* @author - yy
* @time - Dec 9, 2008 3:42:38 PM
*/
public class Test4 {
/**
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
List<DayInfo> list = new Test4().genDayInfoList(2008, 12);
System.out.println(list);
// 输出结果
// [< id = 1 name = 星期一 selected = false>
// , < id = 2 name = 星期二 selected = false>
// , < id = 3 name = 星期三 selected = false>
// , < id = 4 name = 星期四 selected = false>
// , < id = 5 name = 星期五 selected = false>
// , < id = 6 name = 星期六 selected = false>
// , < id = 7 name = 星期日 selected = false>
// , < id = 8 name = 星期一 selected = false>
// , < id = 9 name = 星期二 selected = true>
// , < id = 10 name = 星期三 selected = false>
// , < id = 11 name = 星期四 selected = false>
// , < id = 12 name = 星期五 selected = false>
// , < id = 13 name = 星期六 selected = false>
// , < id = 14 name = 星期日 selected = false>
// , < id = 15 name = 星期一 selected = false>
// , < id = 16 name = 星期二 selected = false>
// , < id = 17 name = 星期三 selected = false>
// , < id = 18 name = 星期四 selected = false>
// , < id = 19 name = 星期五 selected = false>
// , < id = 20 name = 星期六 selected = false>
// , < id = 21 name = 星期日 selected = false>
// , < id = 22 name = 星期一 selected = false>
// , < id = 23 name = 星期二 selected = false>
// , < id = 24 name = 星期三 selected = false>
// , < id = 25 name = 星期四 selected = false>
// , < id = 26 name = 星期五 selected = false>
// , < id = 27 name = 星期六 selected = false>
// , < id = 28 name = 星期日 selected = false>
// , < id = 29 name = 星期一 selected = false>
// , < id = 30 name = 星期二 selected = false>
// , < id = 31 name = 星期三 selected = false>
// ] }
public List<DayInfo> genDayInfoList(int year, int month) throws ParseException {
Calendar calendar = GregorianCalendar.getInstance();
int curDay = calendar.get(Calendar.DATE);
calendar.setTime(new SimpleDateFormat("yyyy-MM-dd").parse(year + "-" + month + "-01"));
List<DayInfo> list = new ArrayList<DayInfo>();
int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
int weekOfFirstDay = calendar.get(Calendar.DAY_OF_WEEK);
for (int i = 1; i <= days; i++) {
DayInfo dayInfo = new DayInfo();
if (curDay == i) {
dayInfo.setSelected(true);
}
dayInfo.setId(i);
dayInfo.setName(this.getWeekName((i + weekOfFirstDay - 2) % 7));
list.add(dayInfo);
}
return list;
}
private String getWeekName(int week) {
String[] weeks = new String[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
return weeks[week];
}
}class DayInfo {
private int id;
private String name;
private boolean selected = false;
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public boolean isSelected() {
return this.selected;
}
public void setSelected(boolean selected) {
this.selected = selected;
}
@Override
public String toString() { // AutoGenerate
StringBuilder sb = new StringBuilder();
sb.append("<");
sb.append(" id = ").append(this.id);
sb.append(" name = ").append(this.name);
sb.append(" selected = ").append(this.selected);
sb.append(">\n");
return sb.toString();
}
}