Sha256: 9a6db012b1eeadfea1e31d8adb617dd1bd3e0a8720a0b625f82c2c04a97a4c50

Contents?: true

Size: 708 Bytes

Versions: 34

Compression:

Stored size: 708 Bytes

Contents

module Meetup

open System

type Schedule = First | Second | Third | Fourth | Last | Teenth

let meetup year month dayOfWeek schedule = 
    let daysOfWeek = 
        [1..DateTime.DaysInMonth(year, month)]
        |> List.map (fun day -> new DateTime(year, month, day))
        |> List.filter (fun date -> date.DayOfWeek = dayOfWeek)
               
    match schedule with
    | Schedule.First  -> daysOfWeek |> List.item 0
    | Schedule.Second -> daysOfWeek |> List.item 1
    | Schedule.Third  -> daysOfWeek |> List.item 2
    | Schedule.Fourth -> daysOfWeek |> List.item 3
    | Schedule.Last   -> daysOfWeek |> List.last 
    | Schedule.Teenth -> daysOfWeek |> List.find (fun date -> date.Day >= 13)

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
trackler-2.2.1.68 tracks/fsharp/exercises/meetup/Example.fs
trackler-2.2.1.67 tracks/fsharp/exercises/meetup/Example.fs
trackler-2.2.1.66 tracks/fsharp/exercises/meetup/Example.fs
trackler-2.2.1.65 tracks/fsharp/exercises/meetup/Example.fs
trackler-2.2.1.64 tracks/fsharp/exercises/meetup/Example.fs
trackler-2.2.1.63 tracks/fsharp/exercises/meetup/Example.fs
trackler-2.2.1.62 tracks/fsharp/exercises/meetup/Example.fs
trackler-2.2.1.61 tracks/fsharp/exercises/meetup/Example.fs
trackler-2.2.1.60 tracks/fsharp/exercises/meetup/Example.fs
trackler-2.2.1.59 tracks/fsharp/exercises/meetup/Example.fs
trackler-2.2.1.58 tracks/fsharp/exercises/meetup/Example.fs
trackler-2.2.1.57 tracks/fsharp/exercises/meetup/Example.fs
trackler-2.2.1.56 tracks/fsharp/exercises/meetup/Example.fs
trackler-2.2.1.55 tracks/fsharp/exercises/meetup/Example.fs