scala नाम - स्कला-एक चयनित वर्ष के लिए दिनों और महीनों की सूची प्राप्त करें




हिंदी अंग्रेजी (2)

यदि आप Joda-Time का उपयोग कर सकते हैं, तो निम्न मेरे लिए काम किया है:

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)
}

मैंने इसके बारे में यहां एक प्रश्न पूछा। यह ठीक काम करता है और एक अच्छा समाधान है, हालांकि मुझे एहसास हुआ कि कुछ मामलों में जब जावा 1.8 import java.time नहीं स्थापित है import java.time उपलब्ध नहीं है। मेरे पास जावा 1.7 है और कई अन्य मुद्दों पर अपडेट नहीं किया जा सकता है।

जावा 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)
}

पुराने जावा संस्करण:

इसलिए, उदाहरण के लिए import java.util.{Calendar} का उपयोग कर एक ही समस्या का हल कैसे हो सकता है? -> किसी दिए गए वर्ष के लिए सभी महीने और दिन प्राप्त करें


चूंकि जावा वास्तविक तत्व प्रकार को नहीं जानता है, इसलिए मुझे List[_] उपयोग करने के लिए यह सबसे उपयोगी लगता है। तब चेतावनी दूर हो जाती है और कोड वास्तविकता का वर्णन करता है - यह अज्ञात चीज़ की एक सूची है।





scala calendar