diff --git a/src/lib/buildProcessSteps.tsx b/src/lib/buildProcessSteps.tsx index bf7b381f..cf7c67be 100644 --- a/src/lib/buildProcessSteps.tsx +++ b/src/lib/buildProcessSteps.tsx @@ -15,7 +15,7 @@ import { import { ActionButton } from "@/components/photoManage/ActionButton"; import { RecipientInfoCard } from "@/components/photoManage/RecipientInfoCard"; import { formatEstimatedTime, formatShippedDate } from "@/utils/dateFormat"; -import { getEarlyFinishedHours } from "@/utils/getEarlyFinishedHours"; +import { getEarlyFinishedTime } from "@/utils/getEarlyFinishedTime"; import ProcessStepSubContent from "@/components/photoManage/ProcessStepSubContent"; type BuildStepsArgs = { @@ -48,7 +48,7 @@ export function buildProcessSteps({ }; const earlyHours = workData.print - ? getEarlyFinishedHours( + ? getEarlyFinishedTime( workData.print.estimatedAt, workData.print.completedAt, ) @@ -129,11 +129,14 @@ export function buildProcessSteps({ workData.print?.status === "COMPLETED" ) { const content = `작업 완료 시간: ${formatEstimatedTime(workData.print.completedAt)}`; - const subcontent = `예상 작업 시간보다 ${earlyHours}시간 빨리 완료되었어요!`; return ( } /> ); diff --git a/src/utils/getEarlyFinishedHours.ts b/src/utils/getEarlyFinishedHours.ts deleted file mode 100644 index e66db005..00000000 --- a/src/utils/getEarlyFinishedHours.ts +++ /dev/null @@ -1,16 +0,0 @@ -export function getEarlyFinishedHours( - estimatedAt: string | null, - completedAt: string | null, -): number { - if (!estimatedAt || !completedAt) return -1; - const estimated = new Date(estimatedAt).getTime(); - const completed = new Date(completedAt).getTime(); - - const diffMs = estimated - completed; - - // 일찍 끝나지 않았으면 0 - if (diffMs <= 0) return 0; - - // ms → 시간 - return Math.floor(diffMs / (1000 * 60 * 60)); -} diff --git a/src/utils/getEarlyFinishedTime.ts b/src/utils/getEarlyFinishedTime.ts new file mode 100644 index 00000000..81e48265 --- /dev/null +++ b/src/utils/getEarlyFinishedTime.ts @@ -0,0 +1,34 @@ +export function getEarlyFinishedTime( + estimatedAt: string | null, + completedAt: string | null, +): string { + if (!estimatedAt || !completedAt) return ""; + + const estimated = new Date(estimatedAt).getTime(); + const completed = new Date(completedAt).getTime(); + + const diffMs = estimated - completed; + + // 일찍 끝나지 않았으면 + if (diffMs <= 0) return "-1"; + + const totalMinutes = Math.floor(diffMs / (1000 * 60)); + + const minutesInHour = 60; + const minutesInDay = 60 * 24; + + // 1시간 미만 → 분 + if (totalMinutes < minutesInHour) { + return `${totalMinutes}분`; + } + + // 1일 미만 → 시간 + if (totalMinutes < minutesInDay) { + const hours = Math.floor(totalMinutes / minutesInHour); + return `${hours}시간`; + } + + // 1일 이상 → 일 + const days = Math.floor(totalMinutes / minutesInDay); + return `${days}일`; +}