Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 초를 일, 시간, 분, 초 단위로 변환하는 방법

개요

이 글에서는 C++을 사용하여 초(second) 단위의 값을 일(day), 시간(hour), 분(minute), 초(second)로 변환하는 프로그램을 다룹니다.

임의의 초 값이 주어졌을 때, 이를 "며칠 몇 시간 몇 분 몇 초" 형태로 변환하는 것이 목표입니다. 이러한 변환은 타이머, 스케줄러, 로그 처리 등 다양한 프로그래밍 상황에서 유용하게 활용됩니다.

변환 원리

변환은 나눗셈 연산자(/)와 나머지 연산자(%)를 활용하면 간단히 구현할 수 있습니다. 기본 단위는 다음과 같습니다.

  • 1일 = 24 × 3600 = 86,400초
  • 1시간 = 3,600초
  • 1분 = 60초

전체 초를 86,400으로 나눈 몫이 일 수가 되고, 남은 나머지를 다시 3,600으로 나누면 시간, 그 나머지를 60으로 나누면 분, 마지막으로 남은 값이 초가 됩니다.

예제 코드

#include <bits/stdc++.h>
using namespace std;
// 초를 일, 시간, 분, 초 형식으로 변환
void convert_decimal(int n) {
    int day = n / (24 * 3600);
    n = n % (24 * 3600);
    int hour = n / 3600;
    n %= 3600;
    int minutes = n / 60;
    n %= 60;
    int seconds = n;
    cout << day << " " << "days " << hour
    << " " << "hours " << minutes << " "
    << "minutes " << seconds << " "
    << "seconds " << endl;
}
int main() {
    int n = 126700;
    convert_decimal(n);
    return 0;
}

실행 결과

1 days 11 hours 11 minutes 40 seconds

코드 설명

입력값이 n = 126700초일 때, 변환 과정은 다음과 같이 진행됩니다.

  1. 일 계산: 126700 ÷ 86400 = 1 → 1일
  2. 남은 초: 126700 % 86400 = 40300초
  3. 시간 계산: 40300 ÷ 3600 = 11 → 11시간
  4. 남은 초: 40300 % 3600 = 700초
  5. 분 계산: 700 ÷ 60 = 11 → 11분
  6. 초 계산: 700 % 60 = 40 → 40초

따라서 126700초는 1일 11시간 11분 40초에 해당합니다.

마무리

이처럼 나눗셈과 나머지 연산만으로도 초 단위의 시간을 사람이 읽기 쉬운 형태로 손쉽게 변환할 수 있습니다. 필요에 따라 출력 형식을 바꾸거나, 사용자로부터 직접 초 값을 입력받도록 확장할 수도 있습니다.