본문 바로가기
개발언어/C#

[C#]시간 계산

by 창용이랑 2021. 11. 4.
728x90

C# 으로 시간계산

C#에서 시간에 대한 데이타형은 2종류입니다.

DateTime과 TimeSpan

DateTime은 시각으로 2000년2월1일 이렇게 시각을 정할때 사용하고

TimeSpan은 시간으로 100일을 더하고 싶으면 TimeSpan.FromDays(100)이렇게 하면

100일을 tick으로 환산하여 계산합니다.100일을 초로 알고싶으면 초나 분으로도 알수있습니다.

 

응용하면 D-day계산등이 가능합니다.

 

시각(DateTime) - 시각 = 시간(TimeSpan)

시각 - 시간 = 시각

 

시각 + 시간 = 시각

 

소스코드

# 으로 시간계산

C#에서 시간에 대한 데이타형은 2종류입니다.

DateTime과 TimeSpan

DateTime은 시각으로 2000년2월1일 이렇게 시각을 정할때 사용하고

TimeSpan은 시간으로 100일을 더하고 싶으면 TimeSpan.FromDays(100)이렇게 하면

100일을 tick으로 환산하여 계산합니다.100일을 초로 알고싶으면 초나 분으로도 알수있습니다.

 

응용하면 D-day계산등이 가능합니다.

 

시각(DateTime) - 시각 = 시간(TimeSpan)

시각 - 시간 = 시각

 

시각 + 시간 = 시각

 

 

소스코드

using System; 

namespace NET402 
{
	class Ex019_DateTime 
	{
		public static void Main(string[] args)
		{ 
			//내가 태어난지 몇일?? //현재시각 - 태어난시각
			DateTime birthday = new DateTime(1985,11,26,12,20,30);

			//내생일 //시각(DateTime) - 시각 = 시간(TimeSpan)
			TimeSpan result = DateTime.Now - birthday;
			Console.WriteLine(result);
			Console.WriteLine(result.TotalDays);
			Console.WriteLine("{0:N0}일", result.TotalDays);
			Console.WriteLine("{0:N0}시간", result.TotalHours);
			Console.WriteLine("{0:N0}시간", result.Hours);
	 
			//올해 크리스마스는 몇일 남았는지?
			DateTime christmas = DateTime.Parse("2011년12월25일0시0분0초");
			TimeSpan result2 = christmas - DateTime.Now;
			Console.WriteLine("올해 크리스마스는 {0:N0}일", result2.TotalDays);			 

			//시각 + 시간 = 시각 //예) 지금으로 부터 100일 뒤는 몇일입니까?
			// 생일 -> 30일? 50일? 100일? 돌?
			DateTime baby = new DateTime(2011, 1, 20);			 

			//시각 = baby + 100일(TimeSpan.FromDays(100);)
			DateTime result3 = baby + TimeSpan.FromDays(100);
			Console.WriteLine(result3);
			DateTime result4 = DateTime.Now + TimeSpan.FromMinutes(45);
			Console.WriteLine(result4);			 

			//시각 + 시간 = 시각
			//시각 - 시간 = 시각

			//오늘부터 백일후?
			//Now + TimeSpan.FromDays(100)
			DateTime result5 = DateTime.Now.AddDays(100);			 

			//Console.WriteLine(DateTime.Now.AddDays(100));
			Console.WriteLine(result5);


			//오늘부터 백일전
			DateTime result6 = DateTime.Now.AddDays(-100);
			Console.WriteLine(result6); 
		}
	}
}

------------------------------------------------------------------

결과

 

 

예제2 소스코드

using System;

namespace NET402
{
	class Ex018_DateTime
	{
		public static void Main(string[] args)
		{
			//날짜 시간 데이터
			// - DateTime 구조체

			//날짜시간 생성
			// 1. 현재 시간
			// 2. 특정 사간

			//현재 시간
			// - 시스템의 현재 시간을 가지고 구조체를 만들어서 돌려줌(Now)
			DateTime dt1 = DateTime.Now;
			Console.WriteLine(dt1);//4:30:00
			//시간이 10분 흘렀음...(가정)

			dt1 = DateTime.Now;//4:40:00
			Console.WriteLine(dt1);//4:40:00?OX

			Console.WriteLine(dt1.Year);
			Console.WriteLine(dt1.Month);
			Console.WriteLine(dt1.Day);
			Console.WriteLine(dt1.Date);
			Console.WriteLine(dt1.Hour);
			Console.WriteLine(dt1.Minute);
			Console.WriteLine(dt1.Second);
			Console.WriteLine(dt1.Millisecond);
			Console.WriteLine(dt1.DayOfYear);
			Console.WriteLine(dt1.DayOfWeek);
			Console.WriteLine(dt1.Ticks);

			//현재시간 "5시 50분 18초"
			Console.WriteLine("{0}시 {1}분 {2}초", dt1.Hour, dt1.Minute, dt1.Second);

			//특정 시간
			DateTime dt2 = new DateTime(2011, 7, 13, 16, 58, 30);
			DateTime dt3 = new DateTime(1980, 5, 20);

			// "문자열" -> 자료형
			DateTime dt4 = DateTime.Parse("2000-5-20");
			Console.WriteLine(dt4);
		}
	}
}

 

결과

https://blog.naver.com/dragon262/110113311659

 

C# 시간계산(DateTime)

C# 으로 시간계산 C#에서 시간에 대한 데이타형은 2종류입니다. DateTime과 TimeSpan DateTime은 ...

blog.naver.com

https://m.blog.naver.com/PostView.naver?blogId=eom913&logNo=177209869&proxyReferer=https:%2F%2Fm.search.naver.com%2Fsearch.naver%3Fsm%3Dmtb_hty.top%26where%3Dm%26oquery%3Dc%2523%2B%25ED%2598%2584%25EC%259E%25AC%25EC%258B%259C%25EA%25B0%2584%26tqi%3DhhLYxlp0JxGssi1LvRwsssssty4-157792%26query%3Dc%2523%2B%25EC%258B%259C%25EA%25B0%2584%25EA%25B3%2584%25EC%2582%25B0