Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum class RangeValueType{
- Int,
- Date,
- String
- }
- fun parseValue(value: String): Pair<RangeValueType, Any> {
- val rangeDate: LocalDateTime
- val rangeInt: Int
- //try date first
- try {
- //ISO_LOCAL_DATE_TIME e.g. 2011-12-03T10:15:30 for Dec. 3rd, 2011 & 10:15 30 sec.
- //can't use basic date b/c e.g. 20111203 is indistinguishable from an int.
- rangeDate = LocalDateTime.parse(value)
- //it parsed to a date, so return the date
- return Pair(RangeValueType.Date, rangeDate)
- }catch (dtpe: DateTimeParseException) {
- //not a date
- }
- //try number next
- try{
- rangeInt = value.toInt()
- //it parsed to an int, so return the int
- return Pair(RangeValueType.Int, rangeInt)
- }catch (nfe: NumberFormatException)
- {
- //not an int
- }
- //not date or int, must be a string
- return Pair(RangeValueType.String, value)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement