날짜 연산
날짜를 더하고 빼고 비교해 보세요.
날짜 연산은(는) CoddyKit의 무료 C# Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C# Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
날짜로 계산하기
DateTime 값은 변경할 수 없습니다. 계산을 해도 원본은 바뀌지 않습니다. 대신 모든 연산은 완전히 새로운 DateTime을 반환합니다.
이 단원에서는 시간을 더하고 빼는 방법, 날짜를 비교하는 방법, 이벤트까지 며칠 남았는지와 같은 질문에 답하는 방법을 다룹니다.
AddDays
AddDays 메서드는 지정한 일수만큼 뒤의 날짜를 반환합니다. 과거로 이동하려면 음수를 전달합니다.
DateTime은 변경할 수 없으므로 반환된 값을 사용해야 하며, 원본은 바뀌지 않습니다.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5);
DateTime later = d.AddDays(10);
Console.WriteLine(later.ToString("yyyy-MM-dd"));
}
}Add 계열
각 단위마다 Add 메서드가 있습니다: AddHours, AddMinutes, AddSeconds, AddMonths, AddYears입니다.
모두 양수와 음수를 받을 수 있으므로 하나의 메서드 집합으로 미래와 과거를 모두 처리할 수 있습니다.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5, 9, 0, 0);
Console.WriteLine(d.AddHours(5).Hour);
}
}AddMonths의 날짜 넘침 처리
AddMonths는 월별 날짜 수를 고려합니다. 1월 31일에 한 달을 더하면 유효하지 않은 날짜가 아니라 2월 28일 또는 29일이 됩니다.
따라서 각 월의 일수를 직접 확인할 필요가 없습니다.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 1, 31);
Console.WriteLine(d.AddMonths(1).ToString("yyyy-MM-dd"));
}
}과거로 이동하기
과거로 이동하려면 음수 인수를 전달합니다. AddDays(-7)은 일주일 전 날짜를 반환합니다.
일을 빼는 별도의 메서드는 없습니다. 음수 값으로 깔끔하게 처리할 수 있습니다.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5);
Console.WriteLine(d.AddDays(-7).ToString("yyyy-MM-dd"));
}
}TimeSpan 더하기
+ 연산자나 Add 메서드를 사용해 TimeSpan을 DateTime에 직접 더할 수 있습니다.
이미 기간을 가지고 있고 날짜를 그만큼 이동하려 할 때 편리합니다.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5, 9, 0, 0);
DateTime later = d + TimeSpan.FromHours(3);
Console.WriteLine(later.Hour);
}
}날짜 사이의 차이
한 날짜에서 다른 날짜를 빼면 두 날짜 사이의 간격을 나타내는 TimeSpan이 생성됩니다.
두 날짜가 서로 다른 월이나 연도에 걸쳐 있어도 TotalDays를 읽어 날짜 수를 계산할 수 있습니다.
using System;
class Program
{
static void Main()
{
DateTime start = new DateTime(2024, 1, 1);
DateTime end = new DateTime(2024, 3, 1);
Console.WriteLine((end - start).TotalDays);
}
}이벤트까지 남은 일수
흔히 하는 작업 중 하나는 미래의 날짜까지 며칠 남았는지 계산하는 것입니다. 목표 날짜에서 오늘을 빼고 TotalDays 또는 Days를 읽으면 됩니다.
여기서는 학습 중 출력 결과를 예측할 수 있도록 고정된 날짜를 사용합니다.
using System;
class Program
{
static void Main()
{
DateTime today = new DateTime(2024, 3, 1);
DateTime party = new DateTime(2024, 3, 15);
Console.WriteLine((party - today).Days);
}
}날짜 비교
DateTime 값은 <, >, ==를 사용해 비교할 수 있습니다. 더 이른 날짜는 더 늦은 날짜보다 작습니다.
공식적인 비교 결과가 필요할 때는 CompareTo와 Equals 같은 메서드도 사용할 수 있습니다.
using System;
class Program
{
static void Main()
{
DateTime a = new DateTime(2024, 1, 1);
DateTime b = new DateTime(2024, 6, 1);
Console.WriteLine(a < b);
}
}윤년과 월의 일수
두 정적 도우미로 달력과 관련된 질문에 답할 수 있습니다. DateTime.IsLeapYear(year)는 윤년이면 참을 반환합니다.
DateTime.DaysInMonth(year, month)은 지정한 월의 일수를 알려 주며, 2월도 올바르게 처리합니다.
using System;
class Program
{
static void Main()
{
Console.WriteLine(DateTime.IsLeapYear(2024));
Console.WriteLine(DateTime.DaysInMonth(2024, 2));
}
}하루의 시작과 끝
하루의 시작을 얻으려면 Date 속성을 사용합니다. 이 속성은 시간 부분을 제거하여 자정으로 설정합니다.
하루의 마지막 순간을 얻으려면 하루를 더한 뒤 틱 하나를 빼거나 23:59:59를 더합니다. Date 속성이 가장 간단한 기본 구성 요소입니다.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
Console.WriteLine(d.Date.ToString("yyyy-MM-dd HH:mm"));
}
}빠른 확인
2024년 1월 31일로 시작해 AddMonths(1)을 호출합니다. 어떤 날짜를 얻습니까?
복습
DateTime 계산은 새로운 값을 반환합니다. AddDays, AddMonths 등을 사용해 날짜를 이동하고, 음수를 사용해 과거로 이동할 수 있습니다.
날짜를 빼서 TimeSpan을 얻고, 연산자로 비교하며, 달력 관련 작업에는 IsLeapYear, DaysInMonth, Date를 사용합니다.
자주 묻는 질문
“날짜 연산” 강의는 무료인가요?
네 — “날짜 연산” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C# Academy 강의 전체를 잠금 해제할 수 있습니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“날짜 연산”에서 뭘 배우나요?
날짜를 더하고 빼고 비교해 보세요. 브라우저에서 직접 실행하는 실습 코드로 C# Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
C# Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 C# Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“날짜 연산” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 C# Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 C# Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.