forked from sheetjs/sheetjs
		
	version bump 0.5.12: correcting for subseconds
h/t @notatestuser Fixes https://github.com/SheetJS/ssf/issues/5 Also fixes https://github.com/SheetJS/js-xlsx/issues/51
This commit is contained in:
		
							parent
							
								
									4404d216c2
								
							
						
					
					
						commit
						c428205723
					
				| @ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "ssf", | ||||
|   "version": "0.5.11", | ||||
|   "version": "0.5.12", | ||||
|   "author": "SheetJS", | ||||
|   "description": "pure-JS library to format data using ECMA-376 spreadsheet Format Codes", | ||||
|   "keywords": [ "format", "sprintf", "spreadsheet" ], | ||||
|  | ||||
							
								
								
									
										6
									
								
								ssf.js
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										6
									
								
								ssf.js
									
									
									
									
									
								
							| @ -5,7 +5,7 @@ var _strrev = function(x) { return String(x).split("").reverse().join("");}; | ||||
| function fill(c,l) { return new Array(l+1).join(c); } | ||||
| function pad(v,d,c){var t=String(v);return t.length>=d?t:(fill(c||0,d-t.length)+t);} | ||||
| function rpad(v,d,c){var t=String(v);return t.length>=d?t:(t+fill(c||0,d-t.length));} | ||||
| SSF.version = '0.5.11'; | ||||
| SSF.version = '0.5.12'; | ||||
| /* Options */ | ||||
| var opts_fmt = {}; | ||||
| function fixopts(o){for(var y in opts_fmt) if(o[y]===undefined) o[y]=opts_fmt[y];} | ||||
| @ -120,6 +120,10 @@ var parse_date_code = function parse_date_code(v,opts) { | ||||
|   var dout=[], out={D:date, T:time, u:86400*(v-date)-time}; fixopts(opts = (opts||{})); | ||||
|   if(opts.date1904) date += 1462; | ||||
|   if(date > 2958465) return null; | ||||
|   if(out.u > .999) { | ||||
|     out.u = 0; | ||||
|     ++time; | ||||
|   } | ||||
|   if(date === 60) {dout = [1900,2,29]; dow=3;} | ||||
|   else if(date === 0) {dout = [1900,1,0]; dow=6;} | ||||
|   else { | ||||
|  | ||||
							
								
								
									
										11
									
								
								ssf.md
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										11
									
								
								ssf.md
									
									
									
									
									
								
							| @ -293,6 +293,15 @@ Date codes beyond 12/31/9999 are invalid: | ||||
|   if(date > 2958465) return null; | ||||
| ``` | ||||
| 
 | ||||
| Due to floating point issues, correct for subseconds: | ||||
| 
 | ||||
| ``` | ||||
|   if(out.u > .999) { | ||||
|     out.u = 0; | ||||
|     ++time; | ||||
|   } | ||||
| ``` | ||||
| 
 | ||||
| Due to a bug in Lotus 1-2-3 which was propagated by Excel and other variants, | ||||
| the year 1900 is recognized as a leap year.  JS has no way of representing that | ||||
| abomination as a `Date`, so the easiest way is to store the data as a tuple. | ||||
| @ -1014,7 +1023,7 @@ coveralls: | ||||
| ```json>package.json | ||||
| { | ||||
|   "name": "ssf", | ||||
|   "version": "0.5.11", | ||||
|   "version": "0.5.12", | ||||
|   "author": "SheetJS", | ||||
|   "description": "pure-JS library to format data using ECMA-376 spreadsheet Format Codes", | ||||
|   "keywords": [ "format", "sprintf", "spreadsheet" ], | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user