corrade-nucleus-nucleons
/pack-rat/003_pack_rat/pack-rat/node_modules/moment/src/lib/moment/start-end-of.js |
@@ -0,0 +1,59 @@ |
import { normalizeUnits } from '../units/aliases'; |
|
export function startOf (units) { |
units = normalizeUnits(units); |
// the following switch intentionally omits break keywords |
// to utilize falling through the cases. |
switch (units) { |
case 'year': |
this.month(0); |
/* falls through */ |
case 'quarter': |
case 'month': |
this.date(1); |
/* falls through */ |
case 'week': |
case 'isoWeek': |
case 'day': |
case 'date': |
this.hours(0); |
/* falls through */ |
case 'hour': |
this.minutes(0); |
/* falls through */ |
case 'minute': |
this.seconds(0); |
/* falls through */ |
case 'second': |
this.milliseconds(0); |
} |
|
// weeks are a special case |
if (units === 'week') { |
this.weekday(0); |
} |
if (units === 'isoWeek') { |
this.isoWeekday(1); |
} |
|
// quarters are also special |
if (units === 'quarter') { |
this.month(Math.floor(this.month() / 3) * 3); |
} |
|
return this; |
} |
|
export function endOf (units) { |
units = normalizeUnits(units); |
if (units === undefined || units === 'millisecond') { |
return this; |
} |
|
// 'date' is an alias for 'day', so it should be considered as such. |
if (units === 'date') { |
units = 'day'; |
} |
|
return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); |
} |