Did you know ... Search Documentation:
Pack julian -- prolog/julian/calendar/gregorian.pl
PublicShow source
 gregorian(?Year, ?Month, ?Day) is semidet
Constrain Year, Month and Day to a valid date in the Gregorian calendar. For example, one could iterate all leap years since 1950 with this:
gregorian(Y, 2, 29), Y #> 1950, indomain(Y).

Because it just constrains Year, Month and Day to have the proper relation one to another, one can bind as many or as few of the arguments as desired.

 month_number(+Month:atom, -Number:integer) is semidet
month_number(-Month:atom, +Number:integer) is semidet
month_number(-Month:atom, -Number:integer) is multi
True if Number is the number for Month. 1 is January, 12 is December. Month is an atom like march, august, etc.

This predicate supports library(delay).