本文整理汇总了TypeScript中chronoshift.Duration类的典型用法代码示例。如果您正苦于以下问题:TypeScript Duration类的具体用法?TypeScript Duration怎么用?TypeScript Duration使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Duration类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: it
it('fromJSes appropriately', () => {
var timeBucketAction1 = granularityFromJS({
action: 'timeBucket',
duration: 'P1W',
timezone: 'America/Tijuana'
});
expect(timeBucketAction1 instanceof TimeBucketAction).to.equal(true);
expect((timeBucketAction1 as TimeBucketAction).timezone.toString()).to.equal('America/Tijuana');
expect((timeBucketAction1 as TimeBucketAction).duration).to.deep.equal(Duration.fromJS('P1W'));
var timeBucketAction2 = granularityFromJS('PT1H');
expect(timeBucketAction2 instanceof TimeBucketAction).to.equal(true);
expect((timeBucketAction2 as TimeBucketAction).timezone).to.equal(undefined);
expect((timeBucketAction2 as TimeBucketAction).duration).to.deep.equal(Duration.fromJS('PT1H'));
var numberBucketAction1 = granularityFromJS({
action: 'numberBucket',
size: 5,
offset: 1
});
expect(numberBucketAction1 instanceof NumberBucketAction).to.equal(true);
expect((numberBucketAction1 as NumberBucketAction).size).to.equal(5);
expect((numberBucketAction1 as NumberBucketAction).offset).to.equal(1);
var numberBucketAction2 = granularityFromJS(5);
expect(numberBucketAction2 instanceof NumberBucketAction).to.equal(true);
expect((numberBucketAction2 as NumberBucketAction).size).to.equal(5);
expect((numberBucketAction2 as NumberBucketAction).offset).to.equal(0);
});
示例2: getTickDuration
export function getTickDuration(timeRange: TimeRange): Duration {
var len = timeRange.end.valueOf() - timeRange.start.valueOf();
if (len > 95 * day.canonicalLength) {
return Duration.fromJS('P1M');
} else if (len > 20 * day.canonicalLength) {
return Duration.fromJS('P1W');
} else if (len > 6 * day.canonicalLength) {
return Duration.fromJS('P1D');
} else if (len > 2 * day.canonicalLength) {
return Duration.fromJS('PT12H');
} else if (len > 23 * hour.canonicalLength) {
return Duration.fromJS('PT6H');
} else if (len > 3 * hour.canonicalLength) {
return Duration.fromJS('PT1H');
} else if (len > hour.canonicalLength) {
return Duration.fromJS('PT5M');
} else {
return Duration.fromJS('PT1M');
}
}
示例3: formatTimeBasedOnGranularity
export function formatTimeBasedOnGranularity(range: TimeRange, granularity: Duration, timezone: Timezone, locale: Locale): string {
const wallTimeStart = WallTime.UTCToWallTime(range.start, timezone.toString());
const year = wallTimeStart.getFullYear();
const month = wallTimeStart.getMonth();
const day = wallTimeStart.getDate();
const hour = wallTimeStart.getHours();
const minute = wallTimeStart.getMinutes();
const second = wallTimeStart.getSeconds();
const monthString = locale.shortMonths[month];
const hourToTwelve = hour % 12 === 0 ? 12 : hour % 12;
const amPm = (hour / 12) >= 1 ? 'pm' : 'am';
var granularityString = granularity.toJS();
var unit = granularityString.substring(granularityString.length - 1);
switch (unit) {
case 'S':
return `${monthString} ${day}, ${pad(hour)}:${pad(minute)}:${pad(second)}`;
case 'M':
var prefix = granularityString.substring(0, 2);
return prefix === "PT" ? `${monthString} ${day}, ${hourToTwelve}:${pad(minute)}${amPm}` : `${monthString}, ${year}`;
case 'H':
return `${monthString} ${day}, ${year}, ${hourToTwelve}${amPm}`;
case 'D':
return `${monthString} ${day}, ${year}`;
case 'W':
return `${formatTimeRange(range, timezone, DisplayYear.ALWAYS)}`;
default:
return cleanISOString(wallTimeHelper(wallTimeStart).toISOString());
}
}
示例4: getBestGranularity
export function getBestGranularity(timeRange: TimeRange): Duration {
var len = timeRange.end.valueOf() - timeRange.start.valueOf();
if (len > 95 * day.canonicalLength) {
return Duration.fromJS('P1W');
} else if (len > 8 * day.canonicalLength) {
return Duration.fromJS('P1D');
} else if (len > 8 * hour.canonicalLength) {
return Duration.fromJS('PT1H');
} else if (len > 3 * hour.canonicalLength) {
return Duration.fromJS('PT5M');
} else {
return Duration.fromJS('PT1M');
}
}
示例5: onGranClick
onGranClick(gran: string): void {
var { clicker, essence, split, onClose } = this.props;
var bucketAction = split.bucketAction;
if (bucketAction instanceof TimeBucketAction) {
var newSplit = split.changeBucketAction(new TimeBucketAction({
timezone: bucketAction.timezone,
duration: Duration.fromJS(gran)
}));
clicker.changeSplits(essence.splits.replace(split, newSplit));
}
onClose();
}
示例6: it
it('formats time range based off of start walltime', () => {
var locale = {
shortDays: ["2"],
weekStart: 0,
shortMonths: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec" ]
};
var start = new Date("1965-02-02T13:00:00.000Z");
var end = day.shift(start, TZ_TIJUANA, 1);
var gran = Duration.fromJS('PT1H');
var range = new TimeRange({ start, end });
expect(formatTimeBasedOnGranularity(range, gran, TZ_TIJUANA, locale), 'hour tijuana').to.equal("Feb 2, 1965, 5am");
start = new Date("1999-05-02T13:00:00.000Z");
end = month.shift(start, TZ_TIJUANA, 1);
gran = Duration.fromJS('PT1S');
range = new TimeRange({ start, end });
expect(formatTimeBasedOnGranularity(range, gran, TZ_TIJUANA, locale), 'second tijuana').to.equal("May 2, 06:00:00");
start = new Date("1999-05-02T13:00:00.000Z");
end = month.shift(start, TZ_TIJUANA, 1);
gran = Duration.fromJS('P1W');
range = new TimeRange({ start, end });
expect(formatTimeBasedOnGranularity(range, gran, TZ_TIJUANA, locale), 'week tijuana').to.equal("May 2 - Jun 2, 1999 6am");
start = new Date("1999-05-02T13:00:00.000Z");
end = month.shift(start, TZ_KATHMANDU, 1);
gran = Duration.fromJS('P1M');
range = new TimeRange({ start, end });
var monthFmt = formatTimeBasedOnGranularity(range, gran, TZ_KATHMANDU, locale);
expect(monthFmt, 'month granularity format').to.equal("May, 1999");
var minFmt = formatTimeBasedOnGranularity(range, Duration.fromJS("PT1M"), TZ_KATHMANDU, locale);
expect(minFmt, 'minute granularity format').to.equal("May 2, 6:45pm");
expect(monthFmt).to.not.equal(minFmt, 'distinguishes between month and minute fmt');
});
示例7: parseIntervalString
function parseIntervalString(str: string): TimeRange {
var parts = str.split('/');
if (parts.length > 2) throw new Error(`Can not parse string ${str}`);
var p0: string = parts[0];
var p1: string = parts.length === 2 ? parts[1] : (new Date()).toISOString();
var start: Date = null;
var end: Date = null;
var duration: Duration = null;
if (p0[0] === 'P') {
duration = Duration.fromJS(p0);
end = new Date(p1);
start = duration.move(end, Timezone.UTC, -1);
} else if (p1[0] === 'P') {
start = new Date(p0);
duration = Duration.fromJS(p1);
end = duration.move(end, Timezone.UTC, 1);
} else {
start = new Date(p0);
end = new Date(p1);
}
return TimeRange.fromJS({ start, end });
}