문제

이하 두 날짜의 차이를 24로 반환 할 수있는 함수가 필요합니다.

DateTime a = new DateTime(2008, 01, 02, 06, 30, 00);
DateTime b = new DateTime(2008, 01, 03, 06, 30, 00);
도움이 되었습니까?

해결책

다음을 수행 할 수 있습니다.

TimeSpan duration = b - a;

타임 스팬 클래스에는 필요한 것을 할 수있는 많은 내장 방법이 있습니다.

duration.TotalSeconds
duration.TotalMinutes

더 많은 정보를 찾을 수 있습니다 여기.

다른 팁

다음을 시도하십시오

double hours = (b-a).TotalHours;

시간 차이를 제외하고 시간 차이를 원한다면 다음을 사용할 수 있습니다.

int hours = (b-a).Hours;

이 두 속성의 차이는 주로 시차가 1 일을 초과 할 때 나타납니다. 시간 속성은 두 날짜 사이의 실제 시간 차이 만보고합니다. 따라서 두 날짜가 100 년이 다르지만 하루에 동시에 발생하면 0 시간이 반환됩니다. 그러나 총 시간은 두 날짜 (이 경우 876,000 시간) 사이에 발생한 총 시간의 차이를 반환합니다.

다른 차이점은 총 시간이 분수 시간을 반환한다는 것입니다. 이것은 당신이 원하는 것일 수도 있고 아닐 수도 있습니다. 그렇지 않은 경우 Math.round는 취향에 맞게 조정할 수 있습니다.

당신은 아마도 다음을 찾고 있습니까 :

int Difference = (a-b).Hours;
int hours = (int)Math.Round((b - a).TotalHours)
var theDiff24 = (b-a).Hours

시간 차이 B/W 시간 에이 방법을 사용합니다.

 private void HoursCalculator()
    {
        var t1 = txtfromtime.Text.Trim();
        var t2 = txttotime.Text.Trim();
        var Fromtime = t1.Substring(6);
        var Totime = t2.Substring(6);
        if (Fromtime == "M")
        {
             Fromtime = t1.Substring(5);
        }
        if (Totime == "M")
        {
            Totime = t2.Substring(5);
        }

        if (Fromtime=="PM" && Totime=="AM" )
        {
            var dt1 = DateTime.Parse("1900-01-01 " + txtfromtime.Text.Trim());
            var dt2 = DateTime.Parse("1900-01-02 " + txttotime.Text.Trim());
            var t = dt1.Subtract(dt2);
            //int temp = Convert.ToInt32(t.Hours);
            //temp = temp / 2;
            lblHours.Text =t.Hours.ToString() + ":" + t.Minutes.ToString();

        }
        else if (Fromtime == "AM" && Totime == "PM")
        {
            var dt1 = DateTime.Parse("1900-01-01 " + txtfromtime.Text.Trim());
            var dt2 = DateTime.Parse("1900-01-01 " + txttotime.Text.Trim());
            TimeSpan t = (dt2.Subtract(dt1));
            lblHours.Text = t.Hours.ToString() + ":" + t.Minutes.ToString();
        }
        else
        {
            var dt1 = DateTime.Parse("1900-01-01 " + txtfromtime.Text.Trim());
            var dt2 = DateTime.Parse("1900-01-01 " + txttotime.Text.Trim());
            TimeSpan t = (dt2.Subtract(dt1));
            lblHours.Text = t.Hours.ToString() + ":" + t.Minutes.ToString();
        }
    }

필드 ID를 사용하십시오

var t1 값을 캡처합니다 오전 4시

이 코드를 확인하면 누군가에게 도움이 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top