#include "Scaliger.cpp" void DateCalc(Response &r){ CGI cgi; if( ! cgi.param() ){ Scaliger sca; r.stash("date1", sca.Datum(' ') ); r.stash("date2", sca.Datum(' ') ); r.stash("datediff","0"); r.stash("wotag1", sca.Tagname()); r.stash("wotag2", sca.Tagname()); } else{ my::merge_map(r.STASH, cgi.parammap); if( cgi.ifparam("ccdiff") ){ Scaliger sca1( cgi.param("date1") ); Scaliger sca2( cgi.param("date2") ); r.stash("datediff", to_string( sca1.Minus(sca2) )); r.stash("wotag1", sca1.Tagname()); r.stash("wotag2", sca2.Tagname()); } else if( cgi.ifparam("jdadd") ){ Scaliger sca2( cgi.param("date2") ); string jd_input = cgi.param("datediff"); std::regex format("(-?\\d+)"); if(! std::regex_match(jd_input, format) ) throw string("Die zu addierenden Tage bitte als ganze Zahl"); Scaliger sca1 = sca2.Plus( std::stoi(jd_input, {}, 10) ); r.stash("date1", sca1.Datum(' ') ); r.stash("wotag1", sca1.Tagname()); r.stash("wotag2", sca2.Tagname()); } else if( cgi.ifparam("src") ){ r.header("Content-Type: text/plain; Charset=UTF-8"); r.content = my::read_file(__FILE__); } } }