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

C 언어로 일수를 년, 주, 일 단위로 변환하는 프로그램

프로그래밍을 하다 보면 총 일수를 년, 주, 일 단위로 나누어 표현해야 하는 경우가 종종 있습니다. 이번 글에서는 C 언어를 사용해 주어진 일수를 년(year), 주(week), 일(day)로 변환하는 방법을 알아보겠습니다.

계산의 편의를 위해 한 해는 365일이라고 가정합니다(윤년은 고려하지 않음). 변환 공식은 다음과 같습니다.

변환 공식

1. 년 수 계산

년 수 = 총 일수 / 365

총 일수를 365로 나눈 이 바로 년 수가 됩니다.

2. 주 수 계산

주 수 = (총 일수 % 365) / 7

총 일수를 365로 나눈 나머지를 구한 뒤, 그 값을 일주일인 7로 다시 나눈 몫이 주 수입니다.

3. 일 수 계산

일 수 = (총 일수 % 365) % 7

365로 나눈 나머지를 다시 7로 나눴을 때의 나머지가 마지막으로 남는 일 수입니다.

입력 및 출력 예시

입력: days = 209
출력: years = 0
      weeks = 29
      days = 6

입력: days = 1000
출력: years = 2
      weeks = 38
      days = 4

예를 들어 1000일은 2년, 38주, 4일에 해당한다는 것을 확인할 수 있습니다.

알고리즘

Start
Step 1 -> 일주일의 일수를 나타내는 매크로 선언: const int n = 7
Step 2 -> 일수를 년, 주, 일로 변환하는 함수 선언
    void find(int total_days)
        변수 선언: int year, weeks, days
        year = total_days / 365 대입
        weeks = (total_days % 365) / n 대입
        days = (total_days % 365) % n 대입
        year, weeks, days 출력
Step 3 -> main() 함수에서
        int Total_days = 209 선언
        find(Total_days) 호출
Stop

C 코드 구현

#include <stdio.h>
const int n = 7;
// 년, 주, 일 계산 함수
void find(int total_days) {
    int year, weeks, days;
    // 윤년이 아닌 것으로 가정
    year = total_days / 365;
    weeks = (total_days % 365) / n;
    days = (total_days % 365) % n;
    printf("years = %d", year);
    printf("\nweeks = %d", weeks);
    printf("\ndays = %d ", days);
}
int main() {
    int Total_days = 209;
    find(Total_days);
    return 0;
}

실행 결과

위 코드를 컴파일하고 실행하면 다음과 같은 결과가 출력됩니다.

years = 0
weeks = 29
days = 6

209일을 입력했을 때 0년 29주 6일로 정확하게 변환되는 것을 확인할 수 있습니다. 이처럼 나눗셈 연산자(/)와 나머지 연산자(%)만 활용하면 간단하게 일수를 년, 주, 일 단위로 변환할 수 있습니다.