How to get start and end date of a year?

前端 未结 15 1758
清酒与你
清酒与你 2021-02-05 02:57

I have to use the Java Date class for this problem (it interfaces with something out of my control).

How do I get the start and end date of a year and then

相关标签:
15条回答
  • 2021-02-05 03:08

    java.time.YearMonth

    How to Get First Date and Last Date For Specific Year and Month.

    Here is code using YearMonth Class.

    YearMonth is a final class in java.time package, introduced in Java 8.

    public static void main(String[] args) {
    
        int year = 2021;  // you can pass any value of year Like 2020,2021...
        int month = 6;   // you can pass any value of month Like 1,2,3...
        YearMonth yearMonth = YearMonth.of( year, month );  
        LocalDate firstOfMonth = yearMonth.atDay( 1 );
        LocalDate lastOfMonth = yearMonth.atEndOfMonth();
    
        System.out.println(firstOfMonth);
        System.out.println(lastOfMonth);
    }
    

    See this code run live at IdeOne.com.

    2021-06-01

    2021-06-30

    0 讨论(0)
  • 2021-02-05 03:08
    Calendar cal = Calendar.getInstance();//getting the instance of the Calendar using the factory method
    we have a get() method to get the specified field of the calendar i.e year
    
    int year=cal.get(Calendar.YEAR);//for example we get 2013 here 
    
    cal.set(year, 0, 1); setting the date using the set method that all parameters like year ,month and day
    Here we have given the month as 0 i.e Jan as the month start 0 - 11 and day as 1 as the days starts from 1 to30.
    
    Date firstdate=cal.getTime();//here we will get the first day of the year
    
    cal.set(year,11,31);//same way as the above we set the end date of the year
    
    Date lastdate=cal.getTime();//here we will get the last day of the year
    
    System.out.print("the firstdate and lastdate here\n");
    
    0 讨论(0)
  • 2021-02-05 03:09

    You can use Jodatime as shown in this thread Java Joda Time - Implement a Date range iterator

    Also, you can use gregorian calendar and move one day at a time, as shown here. I need a cycle which iterates through dates interval

    PS. Piece of advice: search it first.

    0 讨论(0)
  • 2021-02-05 03:11
    GregorianCalendar gcal = new GregorianCalendar();
    gcal.setTime(start);
    while (gcal.getTime().before(end)) {
        gcal.add(Calendar.DAY_OF_YEAR, 1);
        //Do Something ...
    }
    

    The GregorianCalendar creation here is pointless. In fact, going through Calendar.java source code shows that Calendar.getInstance() already gives a GregorianCalendar instance.

    Regards, Nicolas

    0 讨论(0)
  • 2021-02-05 03:14

    If you are looking for a one-line-expression, I usually use this:

    new SimpleDateFormat("yyyy-MM-dd").parse(String.valueOf(new java.util.Date().getYear())+"-01-01")
    
    0 讨论(0)
  • 2021-02-05 03:15

    You can use the apache commons-lang project which has a DateUtils class.

    They provide an iterator which you can give the Date object.

    But I highly suggest using the Calendar class as suggested by the other answers.

    0 讨论(0)
提交回复
热议问题