모두의 코드
모두의 코드

총 42 개의 강의로 준비된 씹어먹는 C 언어 강좌를 통해 C 언어의 처음부터 끝까지 배우실 수 있습니다! 특히 악명 높은 C 언어의 포인터나, 어려운 개념들을 충실히 짚고 넘어갑니다.

이 강좌는 2010년에 완결되었지만, 지속적으로 개선 및 보완하고 있습니다.

C 언어 문법을 아시는 분들이라면, 씹어먹는 C++ 강좌를 통해 C++ 기초 부터 최근의 C++ 17 까지 모든 내용을 배우실 수 있습니다. C 언어와 C++ 의 기본적인 문법이 비슷하기 때문에, C 언어를 어느 정도 아는 독자를 가정하여 쓰여져 있습니다.

이 강좌는 2020년에 완결되었고 총 50 개의 강좌가 준비되어 있습니다.

사이트 내에서 검색 하기
C 언어 레퍼런스
표준 입출력 라이브러리 stdio.h
문자열 관련 라이브러리 string.h
시간 관련 라이브러리 time.h
C ++ 레퍼런스
문자열 라이브러리 string
알고리즘 라이브러리 algorithm
최근 댓글
42terabyte 05.03
조성훈 03.30
#include <iostream> class Date { private: int m_year; // 년도 int m_month; // 월 int m_day; // 일 int GetEndDayOfMonth(int inc) { // 말일에 대한 룩업 테이블 int end_days_lut[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; // 2월은 윤년일 경우 수정 if (((this->m_year % 4 == 0) && (this->m_year % 100 != 0)) || (this->m_year % 400 == 0)) { end_days_lut[2] = 29; } return end_days_lut[this->m_month]; } public: // 생성자: 변수 초기화 explicit Date() { this->m_year = 0; this->m_month = 0; this->m_day = 0; } // 소멸자 ~Date() {} // 년,월,일 설정 void SetDate(int year, int month, int date) { this->m_year = year; this->m_month = month; this->m_day = date; } // 더해진 일자 처리 void AddDay(int inc) { // 0이면 계산할 필요 없음 if (inc == 0) return; // 일자 정리 // 받은 일자를 현재 일자에 더함 this->m_day += inc; while (this->m_day > this->GetEndDayOfMonth(this->m_month)){ // 현재 달의 일수만큼 빼기 this->m_day -= this->GetEndDayOfMonth(0); // 다음 달로 이동 this->AddMonth(1); } return; } // 더해진 월 처리 void AddMonth(int inc) { // 0이면 계산할 필요 없음 if (inc == 0) return; // 받은 월을 현재 월에 더함 this->m_month += inc; // 1년은 12개월임으로 12가 넘으면 다음 년도로 넘김 while (this->m_month > 12) { this->m_month -= 12; ++this->m_year; } return; } // 더해진 년도 처리 void AddYear(int inc) { // 년도는 제한 없음: 그냥 더함 this->m_year += inc; return; } // 현재 계산된 년,월,일 출력 void ShowDate(void) { std::cout << "날짜는 " << this->m_year << "년 " << this->m_month << "월 " << this->m_day << "일 입니다." << std::endl; } }; int main(void) { // 객체 생성 Date date; // 초기 값: 2026년 2월 20일 date.SetDate(2026, 2, 20); // 초기 값에서 10일 더함 date.AddDay(10); // 2026년 2월은 윤년이 아니므로 콘솔에 2026년 3월 02일 출력됨 date.ShowDate(); return 0; }
learn 03.19