Fixing bug where if copy duration went over 24h it would reset to 00:00:00 (#23290)

* Fixing bug where if copy duration went over 24h it would reset to 00:00:00
This commit is contained in:
Austin Bryan
2023-06-06 12:21:24 -07:00
committed by GitHub
parent 85dcec51ac
commit 9328c4ee9e
2 changed files with 29 additions and 4 deletions

View File

@@ -101,7 +101,7 @@ const _dateFormatter = new Intl.DateTimeFormat(
second: '2-digit'
});
const _numberFormatter = new Intl.NumberFormat(
const _numberFormatterOneMinIntegers = new Intl.NumberFormat(
undefined, {
style: 'decimal',
useGrouping: true,
@@ -110,6 +110,31 @@ const _numberFormatter = new Intl.NumberFormat(
maximumFractionDigits: 0,
});
const _numberFormatterTwoMinIntegers = new Intl.NumberFormat(
undefined, {
style: 'decimal',
useGrouping: true,
minimumIntegerDigits: 2,
minimumFractionDigits: 0,
maximumFractionDigits: 0,
});
export function formatSecondsIntoReadableTime(seconds: number) {
const hours = seconds / (60 * 60);
const absoluteHours = Math.floor(hours);
const h = _numberFormatterTwoMinIntegers.format(absoluteHours);
const minutesRemaining = (hours - absoluteHours) * 60;
const absoluteMinutes = Math.floor(minutesRemaining);
const m = _numberFormatterTwoMinIntegers.format(absoluteMinutes);
const secondsRemaining = (minutesRemaining - absoluteMinutes) * 60;
const absoluteSeconds = Math.floor(secondsRemaining);
const s = _numberFormatterTwoMinIntegers.format(absoluteSeconds);
return h + ':' + m + ':' + s;
}
export function formatDateTimeString(dateTime: string): string {
return dateTime
? _dateFormatter.format(new Date(dateTime))
@@ -129,7 +154,7 @@ export function formatTime(miliseconds: number): string {
export function formatNumber(value: number): string {
return value >= 0
? _numberFormatter.format(value)
? _numberFormatterOneMinIntegers.format(value)
: '';
}

View File

@@ -8,7 +8,7 @@ import * as vscode from 'vscode';
import * as loc from '../constants/strings';
import { getMigrationStatusImage, getPipelineStatusImage } from '../api/utils';
import { logError, TelemetryViews } from '../telemetry';
import { canCancelMigration, canCutoverMigration, canDeleteMigration, canRestartMigrationWizard, canRetryMigration, formatDateTimeString, formatNumber, formatSizeBytes, formatSizeKb, formatTime, getMigrationStatusString, getMigrationTargetTypeEnum, isOfflineMigation, PipelineStatusCodes } from '../constants/helper';
import { canCancelMigration, canCutoverMigration, canDeleteMigration, canRestartMigrationWizard, canRetryMigration, formatDateTimeString, formatNumber, formatSecondsIntoReadableTime, formatSizeBytes, formatSizeKb, getMigrationStatusString, getMigrationTargetTypeEnum, isOfflineMigation, PipelineStatusCodes } from '../constants/helper';
import { CopyProgressDetail, getResourceName } from '../api/azure';
import { InfoFieldSchema, MigrationDetailsTabBase, MigrationTargetTypeName } from './migrationDetailsTabBase';
import { IconPathHelper } from '../constants/iconPathHelper';
@@ -355,7 +355,7 @@ export class MigrationDetailsTableTab extends MigrationDetailsTabBase<MigrationD
formatNumber(d.rowsRead),
formatNumber(d.rowsCopied),
formatSizeKb(d.copyThroughput),
formatTime((d.copyDuration ?? 0) * 1000),
formatSecondsIntoReadableTime((d.copyDuration ?? 0)),
loc.ParallelCopyType[d.parallelCopyType] ?? d.parallelCopyType,
d.usedParallelCopies,
formatDateTimeString(d.copyStart),