Ho bisogno di ottenere il primo appuntamento (come org.joda.time.LocalDate
) di un mese e l'ultimo. Ottenere il primo è banale, ma ottenere l'ultimo sembra aver bisogno di una logica in quanto i mesi hanno una lunghezza diversa e la lunghezza di febbraio varia anche nel corso degli anni. Esiste già un meccanismo per questo già integrato in JodaTime o devo implementarlo da solo?Come ottenere l'ultima data di un determinato mese con JodaTime?
risposta
ne dite:
LocalDate endOfMonth = date.dayOfMonth().withMaximumValue();
dayOfMonth()
restituisce un LocalDate.Property
che rappresenta il "giorno del mese" campo in un modo che conosce l'origine LocalDate
.
Come accade, il metodo withMaximumValue()
è ancora documented a consigliarlo per questo compito particolare:
Questa operazione è utile per ottenere un LocalDate l'ultimo giorno del mese, come durata dei mesi vari.
LocalDate lastDayOfMonth = dt.dayOfMonth().withMaximumValue();
@Jon Skeet Come ottenere questo utilizzando la nuova API Date e Time di Java 8? –
@ WarrenM.Nocos: userei 'dt.with (TemporalAdjusters.lastDayOfMonth())' –
una vecchia questione, ma un risultato superiore del Google quando ero alla ricerca di questo.
Se qualcuno ha bisogno l'ultimo giorno stesso come un int
utilizzando invece JodaTime si può fare questo:
public static final int JANUARY = 1;
public static final int DECEMBER = 12;
public static final int FIRST_OF_THE_MONTH = 1;
public final int getLastDayOfMonth(final int month, final int year) {
int lastDay = 0;
if ((month >= JANUARY) && (month <= DECEMBER)) {
LocalDate aDate = new LocalDate(year, month, FIRST_OF_THE_MONTH);
lastDay = aDate.dayOfMonth().getMaximumValue();
}
return lastDay;
}
Utilizzando JodaTime, siamo in grado di fare questo:
public static final Integer CURRENT_YEAR = DateTime.now().getYear(); public static final Integer CURRENT_MONTH = DateTime.now().getMonthOfYear(); public static final Integer LAST_DAY_OF_CURRENT_MONTH = DateTime.now() .dayOfMonth().getMaximumValue(); public static final Integer LAST_HOUR_OF_CURRENT_DAY = DateTime.now() .hourOfDay().getMaximumValue(); public static final Integer LAST_MINUTE_OF_CURRENT_HOUR = DateTime.now().minuteOfHour().getMaximumValue(); public static final Integer LAST_SECOND_OF_CURRENT_MINUTE = DateTime.now().secondOfMinute().getMaximumValue(); public static DateTime getLastDateOfMonth() { return new DateTime(CURRENT_YEAR, CURRENT_MONTH, LAST_DAY_OF_CURRENT_MONTH, LAST_HOUR_OF_CURRENT_DAY, LAST_MINUTE_OF_CURRENT_HOUR, LAST_SECOND_OF_CURRENT_MINUTE); }
come descritto qui nel mio piccolo gist on github: A JodaTime and java.util.Date Util Class with a lot of usefull functions.
Un altro semplice metodo è questo:
//Set the Date in First of the next Month:
answer = new DateTime(year,month+1,1,0,0,0);
//Now take away one day and now you have the last day in the month correctly
answer = answer.minusDays(1);
cosa succede se il tuo mese è = 12? – jon
- 1. Come ottenere i numeri settimanali di un determinato mese?
- 2. Ottenere il nome del mese nominativo in jodaTime
- 3. Come ottenere anno/mese/giorno da un oggetto data?
- 4. come ottenere il primo e l'ultimo giorno di un determinato mese
- 5. Moment JS inizio e fine di un determinato mese
- 6. Come ottenere l'elenco dei giorni in un mese con Moment.js
- 7. JodaTime DateTime, data ISO8601 GMT formato
- 8. Come posso "annullare" una data in un determinato fuso orario?
- 9. Come ottenere un elenco di proprietà con un determinato attributo?
- 10. Come ottenere l'inizio del mese della data e la data di fine della data?
- 11. Come ottenere la prima data del mese corrente in Node.js?
- 12. Come ottenere data, mese, anno in jQuery UI datepicker?
- 13. Come ottenere l'ultima data del mese selezionato in C# .net?
- 14. Come ottenere l'anno e il mese da una data - PHP
- 15. MomentJS - Come ottenere l'ultimo giorno del mese precedente dalla data?
- 16. Min/Max Data/DataTempo in JodaTime
- 17. Ottenere tutti gli elementi con meno di un mese
- 18. Come usare JodaTime con Spring e Hibernate?
- 19. Per aggiungere un mese alla data corrente
- 20. Data con il nome Mese Objective-C
- 21. Data oggetto con anno e mese solo
- 22. Come posso ottenere il nome mese di mese numero
- 23. Come ottenere l'ultimo giorno di un mese da una determinata data?
- 24. Inadempiente data di fuso orario UTC per DateTime di Jodatime
- 25. Come ottenere i server RackSpace con un determinato tag?
- 26. Trova tutti i giorni in un mese con oggetto Data?
- 27. Come ottenere l'estensione predefinita per un determinato tipo di contenuto?
- 28. Come ottenere la prima data e l'ultima data del mese precedente? (Java)
- 29. Ottenere prima e l'ultima data del mese precedente
- 30. Come ottenere l'ultimo giorno del mese
Solo un heads-up, questo funziona anche con i tipi di 'DateTime' :) – vikingsteve