Pertanyaan Perbedaan antara dua DateTimes C #?


Saya memerlukan fungsi yang dapat mengembalikan perbedaan antara dua tanggal di bawah ini sebagai 24.

DateTime a = new DateTime(2008, 01, 02, 06, 30, 00);
DateTime b = new DateTime(2008, 01, 03, 06, 30, 00);

75
2018-05-10 13:58


asal


Jawaban:


Anda dapat melakukan hal berikut:

TimeSpan duration = b - a;

Ada banyak metode bawaan dalam kelas jangka waktu untuk melakukan apa yang Anda butuhkan, yaitu

duration.TotalSeconds
duration.TotalMinutes

Info lebih lanjut dapat ditemukan sini.


144
2018-05-10 14:11



Coba yang berikut ini

double hours = (b-a).TotalHours;

Jika Anda hanya ingin perbedaan jam tidak termasuk perbedaan dalam hari, Anda dapat menggunakan yang berikut ini

int hours = (b-a).Hours;

Perbedaan antara dua sifat ini terutama terlihat ketika perbedaan waktu lebih dari 1 hari. Properti Jam hanya akan melaporkan perbedaan jam aktual antara dua tanggal. Jadi jika dua tanggal berbeda dengan 100 tahun tetapi terjadi pada waktu yang sama pada hari itu, jam akan kembali 0. Namun TotalHours akan mengembalikan selisih antara jumlah total jam yang terjadi antara dua tanggal (876.000 jam dalam kasus ini).

Perbedaan lainnya adalah TotalHours akan mengembalikan jam pecahan. Ini mungkin atau mungkin bukan yang Anda inginkan. Jika tidak, Math.Round dapat menyesuaikannya sesuai dengan keinginan Anda.


15
2018-05-10 13:59



Apakah Anda mungkin mencari:

int Difference = (a-b).Hours;

2
2018-05-10 14:03



int hours = (int)Math.Round((b - a).TotalHours)

1
2018-05-10 14:14



var theDiff24 = (b-a).Hours

0
2018-05-10 14:19



Perbedaan waktu b / w ke waktu akan ditampilkan menggunakan metode ini.

 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();
        }
    }

gunakan id bidang Anda

var t1 menangkap nilai 4:00 pagi

periksa kode ini mungkin bermanfaat bagi seseorang.


0
2018-02-25 06:41