Mercurial > octave
changeset 23303:4aa13310250c
datestr.m: Do automatic format detection across all entries in vector (bug #50558).
* datestr.m: Move automatic format selection which is executed just once based
on first entry in vector, to be outside of loop and to look at all entries in
vector. Add BIST test for new behavior.
author | Lars Kindermann |
---|---|
date | Sat, 18 Mar 2017 22:14:58 -0700 |
parents | 78cf75ffd382 |
children | fb495c47e82d |
files | scripts/time/datestr.m |
diffstat | 1 files changed, 14 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/time/datestr.m Sat Mar 18 10:15:50 2017 -0700 +++ b/scripts/time/datestr.m Sat Mar 18 22:14:58 2017 -0700 @@ -194,19 +194,20 @@ endif endif + ## automatic format selection + if (isempty (f)) + if (v(:,4:6) == 0) + f = 1; + elseif (v(:,1:3) == [-1, 12, 31]) + f = 16; + else + f = 0; + endif + endif + retval = ""; for i = 1 : rows (v) - if (isempty (f)) - if (v(i,4:6) == 0) - f = 1; - elseif (v(i,1:3) == [-1, 12, 31]) - f = 16; - else - f = 0; - endif - endif - if (isnumeric (f)) df = dateform{f + 1}; else @@ -349,6 +350,9 @@ %!assert (datestr ([1944, 6, 6, 6, 30, 0], 0), "06-Jun-1944 06:30:00") ## Test fractional millisecond time extension %!assert (datestr (testtime, "HH:MM:SS:FFF"), "02:33:17:382") +## Test automatic format detection over vectors +%!assert (datestr ([2017 03 16 0 0 0; 2017 03 16 0 0 1]), +%! char ("16-Mar-2017 00:00:00", "16-Mar-2017 00:00:01")) ## Test input validation %!error datestr ()