addtodate: unexpected result when adding years
    6 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
Hi all,
I'm having an issue with addtodate.m. The example:
addtodate(1, 2014, 'year')
ans =
       -734501
is not what I expected... Does anyone know what's going on?
Notes: I'm trying to use addtodate to sanitize a date vector
datevec_unsan = [2014, 1, 1, 40, 0, 0];  % there aren't 40 hours in a day...
types = {'year', 'month', 'day', 'hour', 'minute', 'second'};
tstamp = 0;
for i = 1:6
    tstamp = addtodate(tstamp, datevec_unsan(i), types{i});
end
datevec_sanitized = datevec(tstamp);
0 commentaires
Réponses (2)
  the cyclist
      
      
 le 19 Mai 2014
        
      Modifié(e) : the cyclist
      
      
 le 19 Mai 2014
  
      I was unaware of this handy function before, but this definitely seems like a bug. The result of
datestr(addtodate(1,2014,'year'))
is '01-Jan-7986', while
datestr(addtodate(1,-2014,'year'))
gives '01-Jan-2014' (which I am guessing is what you expected for your answer originally). Adding just a day or a month seems to work fine, though.
I am about to head out the door, so I can't dig in right now, but you could try
edit addtodate
to poke into the function and see what's going on. I suggest you fill out a bug report, unless someone here points out something obvious that you and I are misunderstanding!
  Star Strider
      
      
 le 19 Mai 2014
        MATLAB will do the correction for you. I don’t know the result you want, but this works:
datevec_unsan = [2014, 1, 1, 40, 0, 0]
x = datenum(datevec_unsan);
datevec_new = datevec(x)
produces:
datevec_unsan =
       2014     1     1    40     0     0
datevec_new =
       2014     1     2    16     0     0
2 commentaires
  Star Strider
      
      
 le 19 Mai 2014
				Thanks!
If it solved your problem, the sincerest form of appreciation her on ‘MATLAB Answers’ is to Accept it.
Voir également
Catégories
				En savoir plus sur Calendar dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


