[C# 문법] C# 폴더 시간 비교하기

소개

  • 안녕하세요. 오늘은 C# 문법에서 폴더 수정 시간을 가져와서 다른 폴더와의 시간을 비교하는 방법에 대해서 알려 드리려고 합니다. 해당 구문을 실제 실무에서도 많이 접하실 수 있는 내용이기 때문에 한번쯤은 직접 코딩해 보시면서 기술을 익히시는 것을 추천 드리겠습니다.

  • 해당 로직을 통해서 시간 비교를 할 수 있고, 또한 향후에 여러 파일들의 수정 시간을 이용하여 여러가지 조건을 비교할 경우들이 있는데 이럴때 유용하게 사용할 수 있는 로직이라고 생각합니다.

  • 그럼 예제코드를 통해서 어떻게 시간을 비교하는지 보여 드리도록 하겠습니다.

예제 코드

  • 1차적으로 기준 시간이 되는 파일 혹은 디렉토리를 설정하여 해당 디렉토리의 수정시간을 구합니다.
  • 그리고 beforeTime, afterTime 2개의 DateTime 객체를 선언해서 AddHours 메서드를 이용하여 사용자가 원하는 시간을 입력한 시간의 전/후 시간을 구합니다.
  • 마지막으로 DateTime.Compare 메서드를 통해서 TargetTime과 beforeTime, afterTime 범위를 각각 비교하여 TargetTime이 기준 시간 범위에 해당하는지 비교할 수 있습니다.
using System;
using System.IO;

namespace ConsoleApp7
{
    static class Program
    {
        static void Main(string[] args)
        {       
            string sourcePath = @"C:\Users\Desktop\Test";

            // 기준 시간
            DateTime sourceTime = Directory.GetLastWriteTime(sourcePath);

            // beforeTime은 기준 시간에서 5시간 이전의 시간
            DateTime beforeTime = Directory.GetLastWriteTime(sourcePath).AddHours(-5);

            // afterTIme은 기준 시간에서 5시간 이후의 시간
            DateTime afterTime = Directory.GetLastWriteTime(sourcePath).AddHours(+5);

            Console.WriteLine($"기준 시간 : {sourceTime}");
            Console.WriteLine($"이전 시간 : {beforeTime}");
            Console.WriteLine($"이후 시간 : {afterTime}");

            // 비교할 시간
            DateTime targetTime = new DateTime(2021, 09, 02, 18, 0, 0);

            Console.WriteLine($"TargetTime : {targetTime}");

            Console.WriteLine();

            if ((DateTime.Compare(targetTime, beforeTime) >= 0 && DateTime.Compare(targetTime, afterTime) <= 0) == true)
            {
                Console.WriteLine($"TargetTime이 현재 시간 범위에 포함되어 있습니다.");
            }
            else
            {
                Console.WriteLine($"TargetTime 이 현재 시간 범위에 포함되어 있지 않습니다.");
            }
        }
    }
}

실행 결과

기준 시간 : 2021-09-02 오후 6:44:40
이전 시간 : 2021-09-02 오후 1:44:40
이후 시간 : 2021-09-02 오후 11:44:40
TargetTime : 2021-09-02 오후 6:00:00

TargetTime이 현재 시간 범위에 포함되어 있습니다.
  • 위와 같이 DateTime.Compare 메서드를 통해서 손쉽게 파일 수정시간 범위를 비교해서 Target 시간이 범위에 포함되는지에 대한 유무를 확인할 수 있습니다.
728x90

'C# > C# 문법' 카테고리의 다른 글

[C# 문법] C# 요일 구하기  (0) 2021.09.05
[C# 문법] C# 딕셔너리 키 중복 허용하기  (0) 2021.09.05
[C# 문법] C# yield  (0) 2021.09.01
[C# 문법] C# Dictionary 변환  (0) 2021.08.30
[C# 문법] Dictionary 다루기  (0) 2021.08.30

이 글을 공유하기

댓글

Designed by JB FACTORY