如何找出上一个(上一个)“星期五”的日期或指定日期的任何其他日期?
public getDateOnDay(Date date, String dayName) {
// ?
}
答案 0 :(得分:7)
我不会给出答案(先自己尝试一下!),但是,也许这些提示可以帮助你。
我希望有所帮助。我再次鼓励你总是先为自己尝试这个问题。从长远来看,你可以从中学到更多的东西并成为更好的开发者。
答案 1 :(得分:3)
试试这个:
/**
* Return last day of week before specified date.
* @param date - reference date.
* @param day - DoW field from Calendar class.
* @return
*/
public static Date getDateOnDay(Date date, int day) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.WEEK_OF_YEAR, -1);
cal.set(Calendar.DAY_OF_WEEK, day);
return cal.getTime();
}
祝你好运。
答案 2 :(得分:2)
这是一个蛮力的想法。检查当前日期是否星期五。如果没有,从今天开始减1天。检查新日期是否星期五。如果没有,从新日期减去1天......等等......你明白了。
答案 3 :(得分:1)
获取该日期的星期几。看看Calendar javadoc。获得一周中的某一天后,您可以计算出适用于该日期的偏移量。
答案 4 :(得分:1)
我正在使用它:
private Date getDateOnDay(Date date, int day) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.setFirstDayOfWeek(day);
cal.set(Calendar.DAY_OF_WEEK, day);
return cal.getTime();
}
答案 5 :(得分:1)
根据工作日获取最新日期:
private String getWeekDayDate(String weekday){
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Calendar start = Calendar.getInstance();
Date now = new Date();
start.setTime(now);
Calendar end = Calendar.getInstance();
end.add(Calendar.DATE, -7);
while (start.after(end))
{
try {
Date temp = start.getTime();
String day = new SimpleDateFormat("EEEE").format(temp);
if(day.equalsIgnoreCase(weekday))
return formatter.format(temp);
}catch(Exception e) {
e.printStackTrace();
}
start.add(Calendar.DAY_OF_YEAR, -1);
}
return null;
}
要获取最新的星期五日期,请将工作日称为“星期五”
答案 6 :(得分:0)
//如果您希望在任何日期通过,则从今天的最后四个星期五开始 //只需要调整代码,另一种方法基本上只是以dd / MM / YYYY格式格式化日期。 function GetLastFourFridays(){ today = new Date(); LastFridayDate = new Date();
LastFridayDate.setDate(LastFridayDate.getDate() - 1);
while (LastFridayDate.getDay() != 5) {
LastFridayDate.setDate(LastFridayDate.getDate() - 1);
}
var lfd = LastFridayDate
lfd = convertDate(lfd)
document.getElementById("first_week_th").innerHTML = lfd
LastFridayDate.setDate(LastFridayDate.getDate() - 1);
var friLastWeek = LastFridayDate
while (friLastWeek.getDay() != 5) {
friLastWeek.setDate(friLastWeek.getDate() - 1);
}
var flw = friLastWeek
flw = convertDate(flw)
document.getElementById("second_week_th").innerHTML = flw
friLastWeek.setDate(friLastWeek.getDate() - 1);
var friTwoWeeks = friLastWeek
while (friTwoWeeks.getDay() != 5) {
friTwoWeeks.setDate(friTwoWeeks.getDate() - 1);
}
var ftw = friTwoWeeks
ftw = convertDate(ftw)
document.getElementById("third_week_th").innerHTML = ftw
friTwoWeeks.setDate(friTwoWeeks.getDate() - 1);
var friThreeWeeks = friTwoWeeks
while (friThreeWeeks.getDay() != 5) {
friThreeWeeks.setDate(friThreeWeeks.getDate() - 1);
}
var ftww = friThreeWeeks
ftww = convertDate(ftww)
document.getElementById("fourth_week_th").innerHTML = ftww
}
//表示日期00 // 00 // 0000 function convertDate(inputFormat){ 功能垫{return(s< 10)? ' 0' + s:s; } var d = new Date(inputFormat); return [pad(d.getDate()),pad(d.getMonth()+ 1),d.getFullYear()]。join(' /');}