UNPKG

sugar

Version:

A Javascript library for working with native objects.

4 lines (3 loc) 1.05 kB
function xb(a,b){this.start=ea(a)?a.clone():new u;this.end=ea(b)?b.clone():new u}xb.prototype.toString=function(){return this.isValid()?this.start.full()+".."+this.end.full():"Invalid DateRange"}; G(xb,j,m,{isValid:function(){return this.start<this.end},duration:function(){return this.isValid()?this.end.getTime()-this.start.getTime():NaN},contains:function(a){var b=this;return(a.start&&a.end?[a.start,a.end]:[a]).every(function(c){return c>=b.start&&c<=b.end})},every:function(a,b){var c=this.start.clone(),d=[],e=0,g;if(E(a)){c.advance(kb(a,0),j);g=kb(a)}else g={milliseconds:a};for(;c<=this.end;){d.push(c);b&&b(c,e);c=c.clone().advance(g,j);e++}return d},union:function(a){return new xb(this.start< a.start?this.start:a.start,this.end>a.end?this.end:a.end)},intersect:function(a){return new xb(this.start>a.start?this.start:a.start,this.end<a.end?this.end:a.end)}});J(xb,j,m,"Millisecond,Second,Minute,Hour,Day,Week,Month,Year",function(a,b){a["each"+b]=function(c){return this.every(b,c)}});G(u,m,m,{range:function(a,b){return new xb(a,b)}});