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 查找最近5周的每周结束日_Java_Date - Fatal编程技术网

Java 查找最近5周的每周结束日

Java 查找最近5周的每周结束日,java,date,Java,Date,我在创建一些代码时遇到了一些问题,这些代码应该动态打印最近5周的最后一天的日期 示例输出 current date is 3/27/2014 End date of week 1 = 3/21/2014 End date of week 2 = 3/14/2014 End date of week 3 = 3/7/2014 End date of week 4 = 2/28/2014 End date of week 5 = 2/21/2014. 感谢您的帮助。提前谢谢 多谢各位。。很

我在创建一些代码时遇到了一些问题,这些代码应该动态打印最近5周的最后一天的日期

示例输出

current date is 3/27/2014
End date of week 1 = 3/21/2014
End date of week 2 = 3/14/2014
End date of week 3 = 3/7/2014
End date of week 4 = 2/28/2014
End date of week 5 = 2/21/2014.   
感谢您的帮助。提前谢谢


多谢各位。。很抱歉给你带来了困惑。。实际上,我想要一些代码,我为查找从当前日期开始的最后4周结束日期而准备的

public class dateValid6 {

public static void main(String[] args) {


int curDay = 22;
int curMonth = 3;
int curYear = 2014;
System.out.println("Current date = " + curMonth+"/"+curDay+"/"+curYear);

// if current day of month is between 30 to 25
if (curDay == 27 || curDay == 26 || curDay == 25 || curDay == 24 || curDay == 23 || curDay == 22)
{
    int curDayw1 = curDay - 6;
    String compDatew1 = (curMonth+"/"+curDayw1+"/"+curYear);
    System.out.println("Compared Date for Week 1 = "+compDatew1);

    int curDayw2 = curDayw1 - 7;
    String compDatew2 = (curMonth+"/"+curDayw2+"/"+curYear);
    System.out.println("Compared Date for Week 2 = "+compDatew2);

    int curDayw3 = curDayw2 - 7;
    String compDatew3 = (curMonth+"/"+curDayw3+"/"+curYear);
    System.out.println("Compared Date for Week 3 = "+compDatew3);

    int curDayw4 = 0;

    if (curMonth == 3)
    {
            curDayw4 = curDayw3 - 7;

            if(curDayw4 == 0)
            {
                curDayw4 = 28;
            }

            else if(curDayw4 == -1)
            {
                curDayw4 = 27;
            }

            else if(curDayw4 == -2)
            {
                curDayw4 = 26;
            }
            else if(curDayw4 == -3)
            {
                curDayw4 = 25;
            }
            else if(curDayw4 == -4)
            {
                curDayw4 = 24;
            }
            else if(curDayw4 == -5)
            {
                curDayw4 = 23;
            }
    }

    if (curMonth == 5 || curMonth == 7 || curMonth == 10 || curMonth == 12)
    {
            curDayw4 = curDayw3 - 6;

            if(curDayw4 == 0)
            {
                curDayw4 = 30;
            }

            else if(curDayw4 == -1)
            {
                curDayw4 = 29;
            }

            else if(curDayw4 == -2)
            {
                curDayw4 = 28;
            }
            else if(curDayw4 == -3)
            {
                curDayw4 = 27;
            }
            else if(curDayw4 == -4)
            {
                curDayw4 = 26;
            }
            else if(curDayw4 == -5)
            {
                curDayw4 = 25;
            }
    }

    if (curMonth == 1 || curMonth == 2 || curMonth == 4 || curMonth == 6 || curMonth == 8 || curMonth == 9 || curMonth == 11)
    {
            curDayw4 = curDayw3 - 6;

            if(curDayw4 == 0)
            {
                curDayw4 = 31;
            }

            else if(curDayw4 == -1)
            {
                curDayw4 = 30;
            }

            else if(curDayw4 == -2)
            {
                curDayw4 = 29;
            }
            else if(curDayw4 == -3)
            {
                curDayw4 = 28;
            }
            else if(curDayw4 == -4)
            {
                curDayw4 = 27;
            }
            else if(curDayw4 == -5)
            {
                curDayw4 = 26;
            }
    }

    curMonth = curMonth - 1;
    String compDatew4 = (curMonth+"/"+curDayw4+"/"+curYear);
    System.out.println("Compared Date for Week 5 = "+compDatew4);

    }

}
}

我需要完成这一点,但最少的代码行和一个月的任何日期。。非常感谢……

欢迎来到StackOverflow

下面的示例创建了一个
新的gregoriacalendar(),表示今天。然后,我们按照您要求的格式创建一个
SimpleDateFormat
。之后,我们操纵
c
将其设置为周末(本例中为周日),然后在循环中每次删除一周,并通过
sdf
打印结果

public class Test {             

    public static void main(String[] args) { 

        GregorianCalendar c = new GregorianCalendar();
        SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
        c.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.SUNDAY);
        System.out.println("End date of this week = "+sdf.format(c.getTime()));
        for(int i = 1 ; i <=5 ; i++){
            c.set(GregorianCalendar.WEEK_OF_YEAR, c.get(GregorianCalendar.WEEK_OF_YEAR)-1);
            System.out.println("End date of "+i+" week ago = "+sdf.format(c.getTime()));
        }          
    }
}

这是一个完整的工作示例,因此您可以将其复制到名为
Test.Java的新Java文件中,然后它将运行。我希望这有帮助

“嗨,请帮我学习java代码。”-嗨。。你在说什么代码?是的,Java很容易做到这一点。看看java.util.Calendar,那么你的周末是星期五???您可以尝试使用JodaTime type
LocalDate
执行此任务。到目前为止,您编写了哪些代码?你是被某个特定的方法卡住了还是不知道从哪里开始?
End date of this week = 03/30/2014
End date of 1 week ago = 03/23/2014
End date of 2 week ago = 03/16/2014
End date of 3 week ago = 03/09/2014
End date of 4 week ago = 03/02/2014
End date of 5 week ago = 02/23/2014