Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从指定日期获取上周五的日期?_Java_Date_Calendar - Fatal编程技术网

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 如果您愿意,我将不胜感激谢谢