|
![]() |
#1 |
Участник
|
Цитата:
X++: date d1 = str2date("1996.12.21", 321); date d2 = str2date("1994.11.18", 321); ; info(strfmt("distance is %1 year(s), %2 month(s) and %3 day(s)", intvNo(d1, d2, IntvScale::Year), intvNo(d1, d2, IntvScale::Month), intvNo(d1, d2, IntvScale::Day))); |
|
![]() |
#2 |
Участник
|
Цитата:
2. Но хотел бы чуть-чуть добавить: Вместо str2date(...) можно писать литерал 21\12\1996 |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от gl00mie
![]() Писать ничего не надо, есть стандартные функции ядра по работе с интервалами дат (см., например, тут, раздел Interval):
X++: date d1 = str2date("1996.12.21", 321); date d2 = str2date("1994.11.18", 321); ; info(strfmt("distance is %1 year(s), %2 month(s) and %3 day(s)", intvNo(d1, d2, IntvScale::Year), intvNo(d1, d2, IntvScale::Month), intvNo(d1, d2, IntvScale::Day))); |
|
![]() |
#4 |
Участник
|
RHRMDateDiff
Можете еще посмотреть класс RHRMDateDiff:
RHRMDateDiff rhrmDateDiff = new RHRMDateDiff( 21\01\2006, 12\03\2007 ) ; info( strfmt( "%1, %2, %3", rhrmDateDiff.getYears(), rhrmDateDiff.getMonths(), rhrmDateDiff.getDays() ) ) ; Результат : 1, 1, 22 Последний раз редактировалось petergunn; 10.11.2006 в 08:51. |
|
![]() |
#5 |
Moderator
|
![]()
Увы, не всё там гладко в RHRMDateDiff...
Следующий джоб: X++: static void KKu_Job_6B10_TestDateDiff(Args _args) { void getDateDiff(date _dateBeg, date _dateEnd) { RHRMDateDiff dd; dd = new RHRMDateDiff(_dateBeg, _dateEnd); info(strfmt("distance is %1 year(s), %2 month(s) and %3 day(s)", dd.getYears(), dd.getMonths(), dd.getDays() )); } getDateDiff(31\01\2005, 29\04\2006); getDateDiff(31\01\2005, 30\04\2006); getDateDiff(31\01\2005, 01\05\2006); info('---------------------------'); getDateDiff(31\01\2004, 27\02\2004); getDateDiff(31\01\2004, 28\02\2004); getDateDiff(31\01\2004, 29\02\2004); getDateDiff(31\01\2004, 01\03\2004); } Код: distance is 1 year(s), 2 month(s) and 29 day(s) distance is 1 year(s), 2 month(s) and 30 day(s) distance is 1 year(s), 3 month(s) and 1 day(s) --------------------------- distance is 0 year(s), 0 month(s) and 27 day(s) distance is 0 year(s), 0 month(s) and 28 day(s) distance is 0 year(s), 0 month(s) and 29 day(s) distance is 0 year(s), 1 month(s) and 1 day(s) |
|