>  기사  >  백엔드 개발  >  C#의 날짜/시간

C#의 날짜/시간

WBOY
WBOY원래의
2024-09-03 15:16:12425검색

C#에서 DateTime은 구조체입니다. 따라서 값 유형이며 시간의 순간을 나타내는 데 사용됩니다. 날짜와 시간을 나타내는 데 사용됩니다. DateTime 유형의 값 범위는 0001년 1월 1일 자정 12:00:00부터 A.D.9999년 12월 31일 오후 11:59:59까지입니다. DateTime의 값은 값 유형이므로 null일 수 없습니다. DateTime 값을 초기화하려면 DateTime 생성자의 오버로드를 호출하면 됩니다. 속성이나 메서드에서 반환된 값을 DateTime 개체에 할당할 수도 있습니다.

구문:

다음은 DateTime 구조의 새 인스턴스를 초기화하는 구문입니다.

DateTime date_time = new DateTime();

여기서 date_time은 DateTime 유형의 인스턴스에 부여된 사용자 정의 이름입니다. 'new' 연산자를 사용하여 이 인스턴스를 초기화했습니다. 위 구문에서는 매개 변수가 없는 암시적 생성자를 사용하여 DateTime을 기본값으로 초기화했습니다. DateTime 생성자의 오버로드를 사용하여 DateTime 인스턴스를 초기화할 수도 있습니다.

C#에서 DateTime은 어떻게 작동하나요?

C#에서는 DateTime을 사용하여 여러 가지 방법으로 DateTime 변수에 값을 할당할 수 있습니다.

  • 아래 표시된 것처럼 매개변수가 없는 생성자 또는 매개변수가 있는 생성자 중 DateTime 생성자의 오버로드를 호출하여 DateTime 변수에 값을 할당할 수 있습니다.
DateTime dateTime = new DateTime(2020, 2, 8, 7, 32, 56);

위 문은 특정 연도, 월, 일, 시, 분, 초에 대한 DateTime 구조의 새 인스턴스를 초기화합니다.

  • 여기에서는 DateTime 구조의 아래 생성자를 사용했습니다.
public DateTime(int year, int month, int day, int hour, int minute, int second);
  • 위에 설명된 생성자 외에도 DateTime과 함께 사용할 수 있는 생성자는 다음과 같이 10가지가 있습니다.
public DateTime(long ticks);
  • 여기서 '틱'은 그레고리력으로 0001년 1월 1일 00:00:00.000부터 경과된 100나노초 간격으로 표현되는 날짜와 시간을 나타냅니다.
public DateTime(long ticks, DateTimeKind kind);
  • 여기서 'kind'는 열거형 값 중 값을 나타내며, 틱이 현지 시간, 협정 세계시를 지정하는지, 아니면 둘 중 어느 것도 지정하지 않는지를 나타냅니다.
public DateTime(int year, int month, int day);
  • 이 맥락에서 '연도'는 1부터 9999까지의 값을 나타내고, '월'은 1부터 12까지의 값을 나타내며, '일'은 특정 달의 일 범위 내의 값을 나타냅니다.
public DateTime(int year, int month, int day, Calendar calendar);
  • 여기서 '캘린더'는 연, 월, 일을 해석하는 데 사용되는 달력을 의미합니다.
public DateTime(int year, int month, int day, int hour, int minute, int second, DateTimeKind kind);
public DateTime(int year, int month, int day, int hour, int minute, int second, Calendar calendar);
public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond);
  • 여기서 '밀리초'는 0부터 999까지의 밀리초를 나타냅니다.
public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, DateTimeKind kind);
public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, Calendar calendar);
public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, Calendar calendar, DateTimeKind kind);
  • 아래 표시된 대로 속성이나 메서드에서 반환된 DateTime 값을 DateTime 변수에 할당할 수 있습니다.
DateTime dateTime = DateTime.Now;

현재 날짜와 시간을 DateTime 변수에 할당합니다.

  • 아래 표시된 대로 문자열 표현에서 DateTime 값을 구문 분석하고 이를 DateTime 변수에 할당할 수 있습니다.
string str = "6/2/2020 9:20:40 AM";
DateTime dateTime = DateTime.Parse(str, System.Globalization.CultureInfo.InvariantCulture);

Parse(), ParseExact(), TryParse() 및 TryParseExact() 메서드를 사용하여 위 변환을 수행할 수 있습니다.

C#의 DateTime 예

다음은 문자열을 DateTime 객체로 구문 분석하는 방법에 대한 몇 가지 예입니다.

예시 #1

DateTime에서 제공하는 속성과 메서드를 사용하여 현재 날짜와 시간을 내일 날짜와 시간으로 표시하는 예:

코드:

using System;
using System.IO;
namespace ConsoleApp4
{
class Program
{
public static DateTime GetNextDay()
{
//getting next day using AddDays() method
return DateTime.Now.AddDays(1);
}
public static void Main()
{
//displaying current date and time using 'Now' property of DateTime
Console.WriteLine("Current date and time: {0}", DateTime.Now);
DateTime dateTime = GetNextDay();
Console.WriteLine("Tomorrow date and time: {0}", dateTime);
Console.ReadLine();
}
}
}

출력:

C#의 날짜/시간

예시 #2

예를 들어 사용자로부터 연도를 입력받은 다음 DateTime.IsLeapYear() 메서드를 사용하여 윤년인지 여부를 확인합니다.

코드:

using System;
using System.IO;
namespace ConsoleApp4
{
class Program
{
public static void Main()
{
try
{
//taking year as input from user
Console.WriteLine("Please enter a year");
int year = Convert.ToInt32(Console.ReadLine());
//checking if entered year is a leap year or not
//using DateTime.IsLeapYear() method
Console.WriteLine("\n Using IsLeapYear() method:");
if (DateTime.IsLeapYear(year))
{
Console.WriteLine(year + " is a leap year");
}
else
{
Console.WriteLine(year + " is not a leap year");
}
//checking if entered year is a leap year or not
//using DateTime.DaysInMonth() method
Console.WriteLine("\n Using DaysInMonth() method:");
if (DateTime.DaysInMonth(year, 2) == 29)
{
Console.WriteLine(year + " is a leap year");
}
else
{
Console.WriteLine(year + " is not a leap year");
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
}
}

출력:

C#의 날짜/시간

예시 #3

예를 들어, 연도의 첫 번째 날과 마지막 날을 가져옵니다.

코드:

using System;
using System.IO;
namespace ConsoleApp4
{
class Program
{
public static void Main()
{
DateTime dateTime = DateTime.Now;
//displaying first day of current year
DateTime firstDay = new DateTime(dateTime.Year, 1, 1);
Console.WriteLine("First day of {0} is {1}", dateTime.Year, firstDay);
//getting first day of next year
DateTime dateTimeNext = new DateTime(dateTime.Year + 1, 1, 1);
//subtracting one day from the first day of next year
//to get the last day of current year
DateTime lastday = dateTimeNext.AddDays(-1);
Console.WriteLine("Last day of {0} is {1}", dateTime.Year, lastday);
Console.ReadLine();
}
}
}

출력:

C#의 날짜/시간

결론

dateTime 구조는 날짜 및 시간 작업에 사용됩니다. 날짜와 시간을 저장하는 데이터 타입으로 사용됩니다. DateTime은 날짜 및 시간 작업을 위한 속성과 메서드를 제공합니다. DateTime은 구조이며 값 유형입니다. null일 수 없습니다.

위 내용은 C#의 날짜/시간의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.