private SimpleDateFormat df
long date;//时间戳
df = new SimpleDateFormat("yyyy-MM-dd");
String time = df.format(date);
String[] week = time.split("-");
/*
* 以2049年10月1日(100周年国庆)为例,用蔡勒(Zeller)公式进行计算,过程如下:
* 蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
* =49+[49/4]+[20/4]-2×20+[26× (10+1)/10]+1-1
* =49+[12.25]+5-40+[28.6] =49+12+5-40+28 =54 (除以7余5)
* 即2049年10月1日(100周年国庆)是星期5。
*/
int c = Integer.valueOf(week[0].substring(0, 1));
int y = Integer.valueOf(week[0].substring(2, 3));
int month = Integer.valueOf(week[1]);
// int weekIndex=y+(y/4)+(c/4)-2*c+(26*(month+1)/10)+day-1;
if (month > 3 && month <= 14) {
} else {
y = y - 1;
month = month + 12;
}
int day = Integer.valueOf(week[2]);
int weekIndex = y + (y / 4) + (c / 4) - 2 * c + (26 * (month + 1) / 10) + day - 1;
if (weekIndex < 0) {
weekIndex = weekIndex * (-1);
} else {
weekIndex = weekIndex % 7;
}
String weekDate=null;
switch (Integer.valueOf(weekIndex)) {
case 1:
weekDate = mContext.getResources().getString(R.string.alarm_screen_monday);
break;
case 2:
weekDate = mContext.getResources().getString(R.string.alarm_screen_tuesday);
break;
case 3:
weekDate = mContext.getResources().getString(R.string.alarm_screen_thursday);
break;
case 4:
weekDate = mContext.getResources().getString(R.string.alarm_screen_wendesday);
break;
case 5:
weekDate = mContext.getResources().getString(R.string.alarm_screen_friday);
break;
case 6:
weekDate = mContext.getResources().getString(R.string.alarm_screen_staturday);
break;
case 7:
weekDate = mContext.getResources().getString(R.string.alarm_screen_sunday);
break;
default:
weekDate = mContext.getResources().getString(R.string.alarm_screen_monday);
break;
}
return weekDate;