দুটি ডেটটাইম সি # এর মধ্যে পার্থক্য?


100

আমার এমন একটি ফাংশন দরকার যা নীচের দুটি তারিখের মধ্যে পার্থক্য 24 হিসাবে ফিরিয়ে দিতে পারে।

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

উত্তর:


188

আপনি নিম্নলিখিতটি করতে পারেন:

TimeSpan duration = b - a;

আপনার যা প্রয়োজন তা করার জন্য টাইমস্প্যান ক্লাসে প্রচুর পরিমাণে বিল্ট রয়েছে

duration.TotalSeconds
duration.TotalMinutes

আরও তথ্য এখানে পাওয়া যাবে


4
টাইমস্প্যান স্প্যান = x.ShiftEndTime.Subtract (x.ShiftStartTime) যদি (span.TotalHours == 24) {কর ...}
abmv

19

নিম্নলিখিত চেষ্টা করুন

double hours = (b-a).TotalHours;

আপনি যদি কেবল দিনের পার্থক্য বাদ দিয়ে ঘন্টার পার্থক্য চান তবে নিম্নলিখিতগুলি ব্যবহার করতে পারেন

int hours = (b-a).Hours;

এই দুটি বৈশিষ্ট্যের মধ্যে পার্থক্যটি প্রধানত তখন দেখা হয় যখন সময়ের পার্থক্যটি 1 দিনের বেশি হয়। আওয়ার্সের সম্পত্তিটি কেবলমাত্র দুটি তারিখের মধ্যে প্রকৃত সময়ের পার্থক্যের প্রতিবেদন করবে। সুতরাং যদি দুটি তারিখ 100 বছর দ্বারা পৃথক হয় তবে দিনের একই সময়ে ঘটে, তবে ঘন্টাগুলি 0 ফিরে আসবে Total তবে টোটালহর্স দুটি তারিখের মধ্যে ঘটে যাওয়া মোট পরিমাণের ঘন্টার মধ্যে এই পার্থক্যটি ফিরিয়ে দেবে (এই ক্ষেত্রে 876,000 ঘন্টা)।

অন্যান্য পার্থক্য হ'ল টোটাল ঘন্টাগুলি ভগ্নাংশের সময়গুলি ফিরিয়ে দেবে। এটি আপনি যা চান তা হতে পারে বা নাও পারে। যদি তা না হয় তবে ম্যাথ.রাউন্ড এটিকে আপনার পছন্দ অনুসারে সামঞ্জস্য করতে পারে।


এখনও ভুল। টোটাল আওয়ারগুলি একটি দ্বৈত, পুরো এবং ভগ্নাংশের সময়টিতে ফিরে আসে।
ভিলেক্স-

এটি প্রশ্নের সঠিক উত্তর, তিনি চান যে ফলাফলটি 24 হবে। অবশ্যই তিনি টোটালহর্সকে খুব সহজেই গোল করে ফেলতে পারেন যদি সে এটি চায় that
জেমস অ্যাভেরি

@ জেমস আমার উত্তরটি ঠিক 24 টি উত্পাদন করে। ওপিতে কোনও নির্দিষ্ট সংখ্যার ফর্ম্যাট থাকতে হবে তা নির্দিষ্ট করে নি।
জারেডপাড়

4
@ আবএমভি: "ওপি" - আসল পোস্টার। এই ক্ষেত্রে, আপনি।
সেরিব্রাস

@ জ্যারেড, আমি জানি আমি আপনার সাথে একমত ছিলাম। আমি মনে করি আপনার উত্তরটি নির্বাচিতটির চেয়ে উত্তম উত্তর।
জেমস অ্যাভেরি




-1

সময়ের সাথে পার্থক্য বি / ডাব্লু সময় এই পদ্ধতিটি ব্যবহার করে দেখানো হবে।

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

আপনার ফিল্ড আইডি ব্যবহার করুন

var t1 4:00 এএম এর মান ক্যাপচার করে

এই কোডটি চেক করুন কারও পক্ষে সহায়ক হতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.