как получить первый день первого месяца текущего года в RPGLE

dcl-s сегодняшняя дата inz(*Sys) — текущая системная дата. Как получить первый день первого месяца текущего года в этом формате 2017/01/01


person Georges Sery    schedule 06.12.2017    source источник


Ответы (2)



Вот хитрый трюк:

   dcl-proc BuildDate;
     dcl-pi *n date;
       pyear     int(5) const;
       pmonth    int(5) const;
       pday      int(5) const;
     end-pi;

     dcl-ds *n;
       dateds   date(*iso) inz(d'0001-01-01');
       year     zoned(4:0) pos(1);
       month    zoned(2:0) pos(6);
       day      zoned(2:0) pos(9);
     end-ds;

     year = pyear;
     month = pmonth;
     day = pday;

     test(e) dateds;
     if %error;
       reset dateds;
     endif;

     return dateds;
   end-proc;

Теперь все, что вам нужно сделать, чтобы построить действительную дату с учетом дня, месяца и года, это:

FirstDOY = BuildDate(%subdt(%date(): *Y): 1: 1);
person jmarkmurphy    schedule 06.12.2017