% vim: ft=prolog
:- use_module(library(clpfd)).
:- use_module(library(julian)).
:- use_module(library(tap)).

form_time([2013-07-09, weekday]).
form_time([2013-07-01, weekday]).
form_time([2013-07-26, weekday]).
form_time([2013-07-31, weekday]).

'saturday is not a weekday'(fail) :-
    form_time([1996-11-16, weekday]).

'weekdays in second week of 1984' :-
    Day in 9..15,   % second week
    form_time([1984-09-Day, weekday], Dt),
    forall( member(DOW, [monday,tuesday,wednesday,thursday,friday])
          , form_time(dow(DOW), Dt)
          ),
    forall( member(DOW, [sunday,saturday])
          , \+ form_time(dow(DOW), Dt)
          ).