반응형
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
long total_days(int year, int month, int day);
void calculateDate(long total);
void calculateDate2(long total);
int main(void)
{
int year, month, day, dayafter;
long total;
printf("기준일 (년월일) 입력 : ");
scanf("%d %d %d", &year, &month, &day);
printf("몇일 후 날수 입력:");
scanf("%d", &dayafter);
total = total_days(year, month, day) + dayafter - 1;
printf("총 날짜 수 : %ld\n", total);
calculateDate2(total);
_getch();
return 0;
}
long total_days(int year, int month, int day)
{
int months[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int i;
long total = 0L;
total = (year - 1) * 365L + (year - 1) / 4 - (year - 1) / 100 + (year - 1) / 400;
if (!(year % 4) && year % 100 || !(year % 400))
months[1]++;
for (i = 0; i < month - 1; i++)
total += months[i];
total += day;
return total;
}
void calculateDate(long d) {
int months[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int temp_year = d / 365;
int noOfyoonYear = d / (365 * 4) - d / (365 * 100) + d / (365 * 400);
int remainDays = d % 365 - noOfyoonYear;
int year, month, day;
int i;
if (remainDays < 0) {
year = temp_year + remainDays / 365;
remainDays = 365 + remainDays % 365;
}
else { // 0<= remainDays < 365
year = temp_year + 1;
}
if (!(year % 4) && year % 100 || !(year % 400))
months[1]++;
for (i = 0; i < 12; i++)
if (remainDays >= 0)
remainDays -= months[i];
else {
break;
}
month = i;
day = months[i - 1] + remainDays + 1;
printf("해당 날짜는 %d년 %d월 %d일", year, month, day);
}
void calculateDate2(long d) {
int months[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int noOfyoonYear = d / (365 * 4) - d / (365 * 100) + d / (365 * 400);
int year = (d - noOfyoonYear) / 365 + 1;
int remainDays = (d - noOfyoonYear) % 365;
int month, day;
int i;
if (!(year % 4) && year % 100 || !(year % 400))
months[1]++;
for (i = 0; i < 12; i++)
if (remainDays >= 0)
remainDays -= months[i];
else {
break;
}
month = i;
day = months[i - 1] + remainDays + 1;
printf("해당 날짜는 %d년 %d월 %d일", year, month, day);
}
반응형
'Programming > C' 카테고리의 다른 글
c언어 모음개수구하기 (0) | 2021.08.13 |
---|---|
c언어 입력한정수들의 곱셈 (0) | 2021.08.13 |
c언어 주민번호 예제 (0) | 2021.08.13 |
c언어 숫자맞추기 예제 (0) | 2021.08.13 |
c언어 이름,학번,총점 순서정렬하기 (0) | 2021.08.13 |