diff --git a/lib/modules/Calendar.pmod/YMD.pmod b/lib/modules/Calendar.pmod/YMD.pmod index ecab7318db9d4ef29a612b34188e9ec939907650..930f3919258d07240481ca7268ba67b2e344707b 100644 --- a/lib/modules/Calendar.pmod/YMD.pmod +++ b/lib/modules/Calendar.pmod/YMD.pmod @@ -907,6 +907,23 @@ class YMD return z; } +//! method Second second() +//! method Second second(int n) +//! method Minute minute(int hour,int minute,int second) +//! method array(Second) seconds() +//! method array(Second) seconds(int first,int last) +//! method int number_of_seconds() +//! method Minute minute() +//! method Minute minute(int n) +//! method Minute minute(int hour,int minute) +//! method array(Minute) minutes() +//! method array(Minute) minutes(int first,int last) +//! method int number_of_minutes() +//! method Hour hour() +//! method Hour hour(int n) +//! method array(Hour) hours() +//! method array(Hour) hours(int first,int last) +//! method int number_of_hours() int number_of_hours() { return (number_of_seconds()+3599)/3600; } cHour hour(void|int n) { return get_unit("hour",n); } @@ -917,7 +934,11 @@ class YMD cMinute minute(void|int n,int ... time) { if (sizeof(time)) + { + if (n==number_of_hours()) + return (hour(-1)+1)->minute(time[0]); return hour(n)->minute(time[0]); + } return get_unit("minute",n); } array(cMinute) minutes(int ...range) @@ -927,7 +948,11 @@ class YMD cSecond second(void|int n,int ...time) { if (sizeof(time)==2) + { + if (n==number_of_hours()) + return (hour(-1)+1)->minute(time[0])->second(time[1]); return hour(n)->minute(time[0])->second(time[1]); + } return get_unit("second",n); } array(cSecond) seconds(int ...range)