반응형
서기 1년 1월 1일부터 입력 받는 날짜(년 월 일)까지의 총 날짜 수를 계산하는 C언어 코드입니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int totalday(int year, int month, int day);
int main(void) {
int year, month, day, total;
printf("년월일 입력(yyyy mm dd): ");
scanf("%d %d %d", &year, &month, &day);
total = totalday(year, month, day);
printf("총 날짜: %d\n\n", total);
return 0;
}
int isLeapYear(int year)
{
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
return 1; // 윤년
else
return 0; // 평년
}
int totalday(int year, int month, int day)
{
int months[] = { 31,28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int i, sum = 0;
for (i = 1; i < year; i++) // 이전 년도까지의 총 날 수
sum += (365 + isLeapYear(i));
for (i = 0; i < month - 1; i++) // 현재 년도의 바로 앞 달까지의 총 일수
sum += months[i];
if (month > 2) // 현재 년도, 3월 이상이면 2월이 윤년이면 1을 더함
sum += isLeapYear(year);
sum += day; // 일자를 더함
return sum;
}
(Output)
반응형
'C_C++' 카테고리의 다른 글
(C/C++) 포인터 기초 (0) | 2022.11.02 |
---|---|
(C/C++) Dev C++ 컴파일러 설정하기 (0) | 2022.11.01 |
(C언어) 오늘 날짜 시간 출력하기 time.h tm 구조체 (0) | 2022.11.01 |
(C언어) static 변수: 내부 정적변수와 외부 정적변수 그리고 전역변수 차이점 (0) | 2022.11.01 |
(C언어) 입력받은 문자열에서 알파벳 개수 카운트하기 (1) | 2022.10.30 |