Mad*_*ddy 4 matlab date financial
我需要将datenumber转换为最接近的月末日期.我发现了一个在线链接,但对于大型矩阵来说效率非常低(http://www.mathworks.com/matlabcentral/fileexchange/26374-round-off-dates-and-times).Matlab(Financial Toolbox)是否具有内置功能?我找不到它.
date_in = 734421 ;
somefunction(date_in) --> Sept 2010
Run Code Online (Sandbox Code Playgroud)
谢谢!
基本上,这听起来像是在询问给定日期是否更接近前一个月或下个月.如果使用函数EOMDAY查找月末日期,则可以大大简化所涉及的逻辑,并使用ADDTODATE将当前月份向上或向下移动1.这是一个以日期编号作为输入的示例函数:
function closestString = closest_month(dateNumber)
dateVector = datevec(dateNumber);
daysInMonth = eomday(dateVector(1),dateVector(2));
if dateVector(3) > daysInMonth/2
dateNumber = addtodate(dateNumber,1,'month');
else
dateNumber = addtodate(dateNumber,-1,'month');
end
closestString = datestr(dateNumber,'mmm yyyy');
end
Run Code Online (Sandbox Code Playgroud)