문제

데이터베이스에 저장 한 2 배 사이의 시간 범위를 계산하고 싶습니다. 그래서 말 그대로 나는 두 값 사이의 시간을 알고 싶습니다.

14:10:20 - 10:05:15 = 02:05:05

결과는 02:05:05입니다.

C#을 사용하여 어떻게이를 달성 할 수 있습니까?

14:10:20은 데이터베이스에 저장 한 형식입니다.

도움이 되었습니까?

해결책

두 시간 값을 TimesSpan 변수로 읽은 다음 .Subtract() 더 큰 Times -Span 변수에서 TimesPAN 결과를 얻습니다.

예를 들어 TimeSpan difference = t1.Subtract(t2);.

다른 팁

첫 번째 단계는 데이터베이스에 저장된 타임 값을 .NET에 저장하는 것입니다. DateTime 스트러크.

데이터베이스에서 SQL-DateTime 값으로 저장 된 경우 직접 얻을 수 있습니다. DateTime. 다음과 같이 보일 것입니다.

SQLCommand getTimeCommand = new SQLCommand("SELECT time FROM table", dbConnection);
SQLDataReader myReader = getTimeCommand.ExecuteReader();
while (myReader.Read())
{
    DateTime time = myReader.GetDateTime(0);
}
myReader.Close();

구현이 다를 수 있습니다. MSDN 라이브러리의 ADO.NET 문서를 참조하십시오.

이미 시간을 나타내는 문자열이 있다면 문자열을 DateTime 정적 방법을 사용합니다

DateTime.Parse 

또는

DateTime.ParseExact

귀하의 경우 사용해야 할 수도 있습니다 ParseExact, PE는 문자열을 읽는 방법을 정의하는 형식 문자열과 함께 제공 될 수 있습니다. 예제는 MSDN 라이브러리에서 찾아야합니다.

.NET의 기간은 a 내부에 저장됩니다 TimeSpan 구조. DATETIME 사이에서 경과 시간을 얻는 것은 쉽습니다.

DateTime time1, time2; //filled with your timevalues from the db
TimeSpan elapsed = d2 - d1;

elapsed 이제 둘 사이의 시간대가 포함되어 있습니다 DateTimes. 구조물이 액세스 할 수있는 여러 회원이 있습니다. TimeSpan. MSDN-Library를 살펴보고 필요한 것을 찾으십시오.

DateTime 객체는 "-"연산자를 지원하므로 그러한 객체에 시간을 읽고 빼낼 수 있습니다. 테스트하려면 다음을 확인하십시오.

DateTime then = DateTime.Now;
Thread.Sleep(500);
DateTime now = DateTime.Now;
TimeSpan time = now - then;
MessageBox.Show(time.ToString());
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top