semana - Scala-Obtenga una lista de días y meses para un año seleccionado
meses del año en cursiva (1)
Si puede usar Joda-Time, lo siguiente funcionó para mí:
import java.util.Calendar
import org.joda.time.{DateTime, LocalDate, DurationFieldType}
def allDaysForYear(year: String): List[(String, String, String)] = {
val dateTime = new DateTime()
val daysInYear = if(dateTime.withYear(year.toInt).year.isLeap) 366 else 365
val calendar = Calendar.getInstance
calendar.set(year.toInt, 0, 0)
val ld = LocalDate.fromCalendarFields(calendar)
for {
day <- (1 to daysInYear).toList
updatedLd = ld.withFieldAdded(DurationFieldType.days, day)
} yield (year, updatedLd.getMonthOfYear.toString, updatedLd.getDayOfMonth.toString)
}
Hice una pregunta con respecto a esto aquí . Funciona bien y es una buena solución, sin embargo, me acabo de dar cuenta de que, en algunos casos, cuando java 1.8 NO está instalado, import java.time
no está disponible. Tengo Java 1.7 y no puedo actualizar debido a muchos otros problemas.
después de Java 1.8
import java.time.{LocalDate, Year}
def allDaysForYear(year: String): List[(String, String, String)] = {
val daysInYear = if(Year.of(year.toInt).isLeap) 366 else 365
for {
day <- (1 to daysInYear).toList
localDate = LocalDate.ofYearDay(year.toInt, day)
month = localDate.getMonthValue
dayOfMonth = localDate.getDayOfMonth
} yield (year, month.toString, dayOfMonth.toString)
}
versiones antiguas de java:
entonces, por ejemplo, usando import java.util.{Calendar}
¿cómo se puede resolver el mismo problema? -> Obtenga todos los meses y días para un año determinado