View Raw SPL
dtdelta(d1, t1, d2, t2)
{
        local years, months, days, hours, minutes, seconds, ymdhms;

        if (argc < 4)
        {
                if (argc < 2)
                {
                        error(sprintf("%s - 2 composite date time series required", __FUNC__));
                }

                if (argc == 3)
                {
                        error(sprintf("%s - 4 date time series required", __FUNC__));
                }

                if (numcols(d1) >= 2 && numcols(t1) >= 2)
                {
                        t2 = t1[.., 2..2..end];
                        d2 = t1[.., 1..2..end];

                        t1 = d1[.., 2..2..end];
                        d1 = d1[.., 1..2..end];
                }
        }

        (years, months, days, hours, minutes, seconds) = dtdifference(d1, t1, d2, t2);

        if (outargc > 1)
        {
                return(years, months, days, hours, minutes, seconds);
        }
        else
        {
                ymdhms = ravel(years, months, days, hours, minutes, seconds);

                settable(ymdhms);

                return(ymdhms);
        }
}