DateTime.Hour 속성을 얻으면 항상 24 시간을 얻습니다 (6PM이 나에게 18을 줄 것입니다).DateTime에서 12 시간을 얻는 방법
는 어떻게 "12시간"시간이 오후 6 단지 나에게 6
내가 분명히 자신을 확인 할 수 있습니다받을 수 있나요하지만 난이에 대한 기능을 내장 있다고 가정.
DateTime.Hour 속성을 얻으면 항상 24 시간을 얻습니다 (6PM이 나에게 18을 줄 것입니다).DateTime에서 12 시간을 얻는 방법
는 어떻게 "12시간"시간이 오후 6 단지 나에게 6
내가 분명히 자신을 확인 할 수 있습니다받을 수 있나요하지만 난이에 대한 기능을 내장 있다고 가정.
방법에 대해 :
DateTime.Hour % 12
물론 0-11을 줄 것이다 그건 ... 당신이 1-12 하시겠습니까? 그렇다면 : 나는 이 생각하지 않습니다
((DateTime.Hour + 11) % 12) + 1
당신이 그것을 필요가 없습니다 때문에
은 주로 내장 함수가 없을 ... 간단한 아무것도 내장되어있다 :
이외의 수학 계산은 충분히 간단하며 다른 답변에서도 이미 사용할 수 있습니다.
다른 데이터 소스에서 얻은 정수와 비교 한 시간 비교를 수행하고 있습니다 (분명히 12 시간 만 제공) – leora
다른 소스를 datetime으로 변환해서는 안됩니까? 맹목적으로 12 시간을 비교하는 것은 위험합니다. –
DateTime.Now.ToString ("hh"); -> 이것을 사용하면 18 시간 동안 "06"이됩니다.
기본 제공되는 메소드에 대해 알지 못하지만,이를 수행하기 위해 언제든지 확장 메소드를 추가 할 수 있습니다.
물론 코드를 원하는 방식으로 교체 할 수 있습니다.
public static class Extension
{
public static int GetTwelveCycleHour(this DateTime dateTime)
{
if (dateTime.Hour > 12)
{
return dateTime.Hour - 12;
}
return dateTime.Hour;
}
}
시간이 12 분이 더 간단합니다. –
제가 답변을 게시 한 후이를 알게되었으므로 "물론 코드를 원하는 방식으로 교체 할 수 있습니다." 나의 요점은 내게이 질문이 확장 방법에 대한 좋은 후보자로 들린다는 것이었다. –
저는 Jon Skeet의 대답을 저만 빼고 싶지 않았기 때문에 주석을 추가하고 코드를 변경하지 않았습니다. –
무엇 단순히 약 :
public static int GetTwelveCycleHour(this DateTime dateTime)
{
return Convert.ToInt32(dateTime.ToString("h"));
}
그냥 * 물어, 또는 DateTim * 전자를 의미 할 수 있을까? –
그래도 아침과 저녁 시간을 어떻게 비교할 수 있습니까? – ThePower
나는이 컨트롤을 필요가 없다. . . "Hour" "Min" "AM/PM"에 대한 별도의 텍스트 상자가 있기 때문입니다. 이 코드를 모두 상속 된 코드로 사용하기 위해 캘린더 컨트롤로 옮길 것입니다. – leora