저는 하루 중 시간을 0:00:00 대신에 06:00:00 - 30:00:00으로 표시 할 수 있어야하는 기괴하고 비합리적인 업계에서 일합니다. ~ 24:00:00. DateTime 형식을 사용하여이 작업을 수행 할 수있는 방법이 있습니까? 시간 값이 24보다 큰 날짜 시간을 만들려고하면 예외가 발생합니다.DateTime에 24 시간 이상 저장
답변
TimeSpan 대신 사용 하시겠습니까?
DateTime departure = new DateTime(2010, 6, 12, 18, 32, 0);
DateTime arrival = new DateTime(2010, 6, 13, 22, 47, 0);
TimeSpan travelTime = arrival - departure;
Console.WriteLine("{0} - {1} = {2}", arrival, departure, travelTime);
그런 다음
난 당신이 당신이 찾고있는 정확하게 무엇을 할 수 의심 OBJ 시간 범위의 TotalHours
속성을 사용,하지만 난 당신이 단순히 6 시간을 추가 자신의 날짜 시간 클래스를 만들 수 것으로 기대 가치에. 즉 내부적으로 00-24를 저장하지만 get/set 메서드를 사용하면 06-30처럼 보일 수 있습니다.
예, 기존 날짜 시간 클래스에서 상속 받고 시간이 포함 된 메서드/속성을 재정의 할 수 있습니다. –
@Chris Simpson, 기존 DateTime 구조체를 상속받을 수 없습니다. –
이런 식으로 TimeSpan을 사용해야합니다. – Gabe
DateTime.Hours.Add (6)를 저장하거나 반환해야합니다. 디스플레이 로직에서이를 인식해야합니다.
실제 시간을 저장하고 DateTime을 저장 (또는 파생)하는 새 클래스를 작성하고 출력을 조정하는 ToString()을 사용하여 일반적인 DateTime을 사용하는 방법.
- DateTime이 아닌 TimeSpan을 사용해야합니다.
시간 범위에 대한 포맷 옵션
가
A : [일] [시간]. [분] [초] 분별 초]
B :. 일] [시간]. : [분] [초]
C :. 일] [시간] : [분]
D : 일] [시간]
E :. 일]
F [시간] : [분] [초] 분별 초]
그램. [시간] : [분] [초]
시간 [시간] : [분]
고마워, 전적으로 동의 :) – Gabe
제 생각에는 이것이 프리젠 테이션 문제 일뿐입니다.
사용자가 이상한 형식의 데이터를 입력하고 즉시 UTC로 변환 할 수있게하십시오. 모든 계산은 UTC 시간에 수행하십시오. 그런 다음 결과를 이상한 형식으로 변환하는 ToString 메서드를 만듭니다. WeirdDateTime.Day
구현과 같은 다른 유틸리티 메소드 및 특성이 필요할 수도 있습니다.
DateTime 주위에 래퍼 클래스를 작성하고 해당 클래스에 필요한 모든 변환 및 유틸리티 메서드를 사용할 수 있습니다. 이상한 형식의 문자열에서 구문 분석을 구현하여 시작했습니다. 어떤 방법 으로든 프로덕션 코드를 준비하는 것은 아니지만 어쩌면이 방법에 접근 할 수있는 방법에 대한 아이디어를 줄 수 있습니다.
class WeirdDateTime
{
public DateTime DateTime { get; set; }
public WeirdDateTime(int year, int month, int day, int hour, int minute, int second, DateTimeKind kind)
{
if (hour < 6 || hour >= 30)
throw new ArgumentException("Not a valid WeirdDateTime", "hour");
bool addDay;
if (hour >= 24)
{
addDay = true;
hour -= 24;
}
else
{
addDay = false;
}
DateTime dateTime = new DateTime(year, month, day, hour, minute, second, kind);
if (addDay)
dateTime = dateTime.AddDays(1);
DateTime = dateTime;
}
public static WeirdDateTime Parse(string s)
{
Regex regex = new Regex(@"(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})");
Match match = regex.Match(s);
if (!match.Success)
throw new FormatException("Not a valid WeirdDateTime");
int[] parts = match.Groups.Cast<Group>()
.Skip(1)
.Select(x => int.Parse(x.Value))
.ToArray();
int year = parts[0];
int month = parts[1];
int day = parts[2];
int hour = parts[3];
int minute = parts[4];
int second = parts[5];
return new WeirdDateTime(year, month, day, hour, minute, second, DateTimeKind.Unspecified);
}
public override string ToString()
{
throw new NotImplementedException("Write this!");
}
}
class Program
{
public static void Main()
{
WeirdDateTime weirdDateTime = WeirdDateTime.Parse("2010-01-19 27:00:00");
DateTime dateTimeUtc = weirdDateTime.DateTime.ToUniversalTime();
Console.WriteLine(dateTimeUtc);
}
}
- 1. 하루 종일 영업 시간 (24 시간) 저장
- 2. DateTime 시간? 24 시간 형식으로
- 3. Facebook으로 24 시간 이상 인증 할 수 있습니까?
- 4. PHP로 24 시간 동안 사용자 입력 데이터 저장
- 5. Ruby에서 12 시간 24 시간 형식으로 변환
- 6. 시간 표현이 24 시간 초과 Excel
- 7. 24 시간/12 시간 시계 문제
- 8. 시간 소인이 24 시간 미만인 행 계산
- 9. MySQL은 : 24 시간 간격 조인
- 10. 자바에서 24 시간 형식으로 변환
- 11. 24 시간 PHP로 가우시안 분포
- 12. Java 시간 0에서 24 사이
- 13. 24 시간 알림 [JavaScript, 쿠키]
- 14. Fluid 960 Grid System 24 열 이상?
- 15. datetime에 대한 쿼리
- 16. 24 시간 형식의 UIDatePicker 반환 값
- 17. dateFromString 변경 후 nil 반환 24 시간
- 18. 각 24 시간 후에 aC# 함수를 실행합니다.
- 19. Zip 파일을 모두 24 시간 내
- 20. 24 시간 단위로 현재 시간과 날짜 받기
- 21. WPF Datagrid에서 24 시간 시계 표시
- 22. 시간대를 datetime에 적용하는 날짜 형식
- 23. UIDatePicker를 12 시간 시계에서 24 시간 시계로 변경하십시오.
- 24. Android 앱 결제가 24 시간 대신 10 시간 후에 청구됩니까?
- 25. PHP 12 시간 형식에서 24 시간 형식으로 변환
- 26. 저장 프로 시저, 날짜/시간
- 27. 날짜/시간 범위 (지난 24 시간, 48 시간, 기타 ... 시간) 기준 Ruby on Rails 쿼리
- 28. 날짜 및 시간을 C#의 DateTime에 결합하십시오.
- 29. 저장 시간 범위
- 30. 기하 급수적으로 순위가 C에서 datetime에 accoring =
나는 흥미가 있습니다. 어떤 산업입니까? –
TARDIS 제조 업체. – JohnFx
@JohnFx - 결국 4 월 1 일입니다 –