Skip to content

fifth-postulate/julian

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

julian Build Status

A date and time library for Prolog.

Warning: This is alpha quality software. APIs will change. There are bugs. Use with caution. Time zones are not yet supported and semantics that should account for time zone choose arbitrary, unpredictable behavior.

With that out of the way, the library can do a lot of useful stuff. See the in-depth tutorial for examples.

Synopsis

:- use_module(library(julian)).
:- use_module(library(clpfd)).
solution(Year) :-
    % Eisenhower presidency had Fourth of July on Sunday in ...
    form_time([dow(sunday), Year-07-04]),
    Year in 1953..1961.
    
?- solution(Y).
Y = 1954.

Installation

Using SWI-Prolog 7.1.18 or later:

?- pack_install(julian).

This module uses semantic versioning.

Source code available and pull requests accepted at https://github.com/fifth-postulate/julian

Development

Testing

Test are written with the Test Anything Protocol (TAP) and use the fnogatz/tap library.

To install the tap pack run

?- pack_install(tap).

Next, the julian pack should be available as a library. One can install from the local installation by running

?- pack_install('file:///home/<path-to-project>/julian').

A TAP test harness should be used to run the tests in this project. To run the t/types.pl test on could execute

prove -v -e 'swipl -q -t main -s' t/types.pl

To run all test one could use

prove -v -e 'swipl -q -t main -s' t/**.pl

Or use make tests.