计算一个日期字符串是星期几。 如: String str = "2001-02-02"; DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date d = df.parse(str); Calendar cal = new GregorianCalendar(); cal.setTime(d); calendar.get(calendar.DAY_OF_WEEK );
String str = "2001-02-02"; DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date d; try { d = df.parse(str); Calendar cal = Calendar.getInstance(); cal.setTime(d); System.out.println(cal.get(Calendar.DAY_OF_WEEK )); } catch (Exception e) { // TODO: handle exception }
如:
String str = "2001-02-02";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date d = df.parse(str);
Calendar cal = new GregorianCalendar();
cal.setTime(d);
calendar.get(calendar.DAY_OF_WEEK );
String str = "2001-02-02";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date d;
try {
d = df.parse(str);
Calendar cal = Calendar.getInstance();
cal.setTime(d);
System.out.println(cal.get(Calendar.DAY_OF_WEEK ));
} catch (Exception e) {
// TODO: handle exception
}
c.set(2008,8,26);
System.out.println(c.get(c.DAY_OF_WEEK));
输出结果为6,为什么?是哪里错了?
并没有将Calendar中istimeset设成true
因为Calendar的month是从0开始算的,亦即0-11(这个要特别注意),所以c.set(2008,8,26);实际上是将时间设定为2008年9月26日返回6说明是星期五(DAY_OF_WEEK返回的是从星期日起算,从1开始计数,亦即星期日返回1、星期一返回2,依此类推)
import java.util.Calendar;
import java.util.GregorianCalendar;
public class Test {
public static void main(String[] args) {
try {
Calendar calendar=new GregorianCalendar(2000, 01, 01);
System.out.println(calendar.get(Calendar.DAY_OF_WEEK)+1);
//注意:这里加1的原因是,我们算星期 都是从周一开始的,而系统算星期都是从周日开始的。
} catch (Exception e) {
e.printStackTrace();
}
}
}