Skip to content
Discussion options

You must be logged in to vote

Or if you don't like the nested sequence() call, using atLeastOnceDelimitedBy() for the date range is an option too:

Parser<LocalDate> ld = Parser.digits()
    .atLeastOnceDelimitedBy(".")
    .suchThat(list ->
         list.size() == 3 && list.get(0).length() == 2 && list.get(1).length() == 2 && list.get(2).length() == 4,
        "dd.mm.yyyy")
    .map(list -> new LocalDate(Integer.parseInt(list.get(2)), Integer.parseInt(list.get(1)), Integer.parseInt(list.get(0))));
Parser<DateRange> dateRange = Parser.sequence(ld.followedBy(".."), ld, DateRange::new).between("[", "]");

Replies: 3 comments 1 reply

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
1 reply
@spyse
Comment options

Answer selected by fluentfuture
Comment options

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants