2013-06-06 4 views
-1

나는 같은 기간과 비교 할 ... C# 날짜 시간 빼기 시간은

은 내가 변수 날짜 시간을 가지고, 나는이 변수의 시간은 실제 시간보다 작은 경우 비교하려는

예 :

Datetime DateT = new DateTime.Now; 

    string Myvariable = "13:00:36"; 
+2

... 첫째 [자주 묻는 질문]을 읽어 보시기 바랍니다. – David

+0

Yummm ... 커피! @ 마르코, 문자열 변수를 DateTime으로 변환하고 다양한 일반 메소드 (Google) 중 하나를 사용하여 비교를 수행해야합니다. –

+0

하지만 어떻게이 날짜와 같은 시간에 VAriable을 비교할 수 있습니까? '2013 -06-03 13:00:36 "다른 날짜 시간 변수와 함께"13:00:36 "?? –

답변

1

당신은

string value = "13:00:36"; 
DateTime dt; 
if (DateTime.TryParseExact(value, "HH:mm:ss", CultureInfo.InvariantCulture, 
         DateTimeStyles.None, out dt)) 
{ 
    if (dt.TimeOfDay > DateTime.Now.TimeOfDay) 
    { 
     // greater than actual time 
    } 
    else 
    { 
     // smaller than actual time 
    } 
} 

아래로 DateTime.TryParseExact MethodDateTime.TimeOfDay Property를 사용할 수 있습니다. 당신이 할 수있는 일은 올바른 형식 문자열을 제공하여 Datetime으로 변환하는 것입니다. 이제 두 개의 날짜 시간 개체가 당신은 날짜 시간 인스턴스와 시간 문자열 얻기 위해 다음 코드를 사용하여 ..

0

가 대신 DateTime 변수를 사용하려고 했습니까? 이런 식으로 뭔가 : 당신은 여전히 ​​출력 문자열로 값이 date1.ToString() 기능을 사용 할 수 있지만

DateTime date1 = new DateTime(2013, 1, 1, 13, 00, 36); 
DateTime dateNow = new DateTime.Now; 

Console.WriteLine(date1.ToString("T", CultureInfo.CreateSpecificCulture("es-ES"))); 
// Outputs 6:30:00 
Console.WriteLine(date1.ToString("U", CultureInfo.CreateSpecificCulture("en-US"))); 
// Outputs Tuesday, January 1, 2013 13:00:36 PM 
Console.WriteLine(dateNow.ToString()); 
// Outputs the current date/time 

는 그런 다음, 다른 날짜 시간을 만들고 DateTime 변수가 아닌 문자열로 비교할 수 있습니다. 여기에 대한

상세 정보 : http://msdn.microsoft.com/en-us/library/az4se3k1.aspx

그것이 도움이되기를 바랍니다. 당신이 그것을 비교하기 어려운 문자열 형식으로 시간을 가지고 있기 때문에

+0

신경 쓰지 마세요, 위에 더 효율적인 솔루션이 있습니다. 나는 다른 것을 생각하고 있었다. – Gunnar

0

TimeOfDay 속성에서 그 객체의 시간을 얻을 수와 비교할 수 있습니다

DateTime DateT = new DateTime.Now; 

string Myvariable = "13:00:36"; 

DateTime parsedTime = DateTime.ParseExact(
    Myvariable, 
    "HH:mm:ss", 
    CultureInfo.InvariantCulture); 

parsedTime는 것을 문자열 변수 에 주어진 시간 구성 요소 (시, 분, 초). 그러나 다른 날짜는입니다. 년, 월, 일 구성 요소는 문자열에 나타나지 않으므로 기본값은 DateTime.MinValue.Date입니다. 제대로 비교하기 위해, 당신은 시간의 부분 만 비교 필요 : 내가 커피 한 잔을 갖고 싶어

bool isParsedGreater = parsedTime.Hours > DateT.Hours 
    && parsedTime.Minutes > DateT.Minutes 
    && parsedTime.Seconds > DateT.Seconds;