Java 如何从指定日期获取上周五的日期?
如何查找上周五的日期或指定日期后的任何其他日期Java 如何从指定日期获取上周五的日期?,java,date,calendar,Java,Date,Calendar,如何查找上周五的日期或指定日期后的任何其他日期 public getDateOnDay(Date date, String dayName) { // ? } 我不会给你答案的,你自己先试试!,但是,也许这些建议可以帮助你 你首先需要计算出你所在的一周中的当前日期。您可能想看一看Java的类,了解如何做到这一点。 一旦你得到了你所处的日期,考虑一下模数操作符,以及你如何使用它向后移动,从你当前所在的那一天开始拾取你正在寻找的前一天。记住,一周是7天,一周中的每一天都会在这7天中占据一个
public getDateOnDay(Date date, String dayName) {
// ?
}
我不会给你答案的,你自己先试试!,但是,也许这些建议可以帮助你 你首先需要计算出你所在的一周中的当前日期。您可能想看一看Java的类,了解如何做到这一点。 一旦你得到了你所处的日期,考虑一下模数操作符,以及你如何使用它向后移动,从你当前所在的那一天开始拾取你正在寻找的前一天。记住,一周是7天,一周中的每一天都会在这7天中占据一个位置。 一旦你有了中间的天数,你就会想减去。当然,在Java框架中,有些类可以为您添加和减少天数。。。
我希望这有帮助。再一次,我鼓励你首先自己尝试这个问题。通过这种方式,您可以学到更多,并且从长远来看,您将成为一名更好的开发人员。我不会给出答案,请先自己尝试!,但是,也许这些建议可以帮助你 你首先需要计算出你所在的一周中的当前日期。您可能想看一看Java的类,了解如何做到这一点。 一旦你得到了你所处的日期,考虑一下模数操作符,以及你如何使用它向后移动,从你当前所在的那一天开始拾取你正在寻找的前一天。记住,一周是7天,一周中的每一天都会在这7天中占据一个位置。 一旦你有了中间的天数,你就会想减去。当然,在Java框架中,有些类可以为您添加和减少天数。。。
我希望这有帮助。再一次,我鼓励你首先自己尝试这个问题。通过这种方式,您可以学到更多,并且从长远来看,您将成为一名更好的开发人员。这里有一个蛮力的想法。检查当前日期是否为星期五。如果不是,从今天减去1天。检查新日期是否为星期五。如果不是,则从新日期中减去1天。。。。。等等。。你明白了。这里有一个蛮力的想法。检查当前日期是否为星期五。如果不是,从今天减去1天。检查新日期是否为星期五。如果不是,则从新日期中减去1天。。。。。等等。。你明白了。把星期几作为日期。看看日历javadoc。一旦你有了一周中的某一天,你就可以计算一个应用于该日期的偏移量。获取该日期的一周中的某一天。看看日历javadoc。一旦你有了一周中的某一天,你就可以计算一个应用于该日期的偏移量。试试这个:
/**
* 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();
}
祝你好运。试试这个:
/**
* 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();
}
祝你好运。我在用这个:
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();
}
我用这个:
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();
}
//如果要传入任何日期,请获取今天日期后的最后四个星期五 //只需调整代码,另一种方法基本上只是将日期格式化为dd/MM/YYYY格式。 函数GetLastFourFridays{ 今天=新日期; LastFridayDate=新日期
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
函数convertDateinputFormat{
函数pad{返回s<10?'0'+s:s;}
var d=新的DateinputFormat;
return[padd.getDate,padd.getMonth+1,d.getFullYear]。加入“/”;}//如果要传入任意日期,请获取今天日期后的最后四个星期五 //只需调整代码,另一种方法基本上只是将日期格式化为dd/MM/YYYY格式。 函数GetLastFourFridays{ 今天=新日期; LastFridayDate=新日期
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
函数convertDateinputFormat{
函数pad{返回s<10?'0'+s:s;}
var d=新的DateinputFormat;
返回[padd.getDate,padd.getMonth+1,d.getFullYear]。加入“/”;}以获取基于工作日的任何最新日期:
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;
}
要获取最新的星期五日期,请将工作日设为星期五以获取基于工作日的任何最新日期:
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;
}
要获得最新的周五日期,请将工作日设为周五好吧,我想说你被卡住了。你没有任何代码。如果你需要帮助,请先尝试一下。你更有可能得到有用的答案。好吧,我想说你被卡住了。你没有任何代码。如果你需要帮助,请先尝试一下。你更有可能得到有用的答案。+1耐心、信息量大、鼓励性强。谢谢Jas…我试过并得到了解决方案…:@yakub_moriss-太好了!很高兴听到。我在这个问题上做了什么,以后再尝试一下-在编写任何代码行之前先写出过程。这有助于清理问题空间。此外,如果我的回答对你有帮助,我会感激你接受。:-谢谢!+1的耐心、信息量大和鼓励。谢谢Jas…我尝试并得到了解决方案…:@yakub_moriss-太好了!很高兴听到这个问题。我在这个问题上做了什么,以后再尝试-在编写任何代码行之前先写出流程。这有助于清理问题空间。另外,如果我的答案是wer helpe 如果您愿意,我将不胜感激谢谢