2010-10-22 5 views
21

मैं एक उपकरण को एक साथ रखने की कोशिश कर रहा हूं जो मुझे कार्य शेड्यूल करने में मदद करेगा। निम्नलिखित को हल करने का सबसे आसान तरीका क्या है?सी #: समय घटाने का सबसे आसान तरीका क्या है?

8:00 बजे + 5 घंटे = 1:00 बजे

और

सायं 5:00 - 2 घंटे = 3:00 बजे

और

5:30 -: 45 = 4 : 45

और इसी तरह।

उत्तर

42

ये सभी DateTime.Add(TimeSpan) के साथ किए जा सकते हैं क्योंकि यह सकारात्मक और नकारात्मक टाइमपैंस का समर्थन करता है।

DateTime original = new DateTime(year, month, day, 8, 0, 0); 
DateTime updated = original.Add(new TimeSpan(5,0,0)); 

DateTime original = new DateTime(year, month, day, 17, 0, 0); 
DateTime updated = original.Add(new TimeSpan(-2,0,0)); 

DateTime original = new DateTime(year, month, day, 17, 30, 0); 
DateTime updated = original.Add(new TimeSpan(0,45,0)); 

या आप समान रूप से DateTime.Subtract(TimeSpan) विधि का भी उपयोग कर सकते हैं।

+0

ठीक तो मैं जहां चली गई गलत। मैंने एक डेटाटेमिपर जोड़ा और डेटाटाइम वैरिएबल को अपना मान सौंपा। अब गणित विधियां – Sinaesthetic

+0

@ सिनेस्थेटिक नहीं दिख रही हैं - शायद कुछ कोड पोस्ट करने के लायक है, यह डेट-टाइम अंकगणित –

+0

@ सिनेस्थेटिक से थोड़ा अलग सवाल है जब आप डेटटाइम पिकर का उपयोग करते हैं, तो ध्यान रखें कि यह _either_ date _or_ time- दिन-प्रतिदिन, लेकिन * दोनों * से बना मूल्य बनाए रखता है ... यदि आप वैल्यू प्रॉपर्टी का उपयोग कर रहे हैं तो आपको पहले एक या दूसरे घटक को घटाना होगा। – Ian

17

सभी दिनांक समय यहाँ तरीकों की जाँच करें: http://msdn.microsoft.com/en-us/library/system.datetime.aspx

Add एक नया दिनांक समय है कि इस उदाहरण के मूल्य के निर्दिष्ट TimeSpan का मूल्य कहते हैं देता है।

AddDays एक नया दिनांक समय है कि इस उदाहरण के मूल्य के निर्दिष्ट दिनों के कहते हैं देता है।

AddHours एक नया डेटटाइम देता है जो इस उदाहरण के मान में निर्दिष्ट संख्याओं को जोड़ता है।

AddMilliseconds एक नया दिनांक समय है कि इस उदाहरण के मूल्य के मिलीसेकेंड की निर्दिष्ट संख्या कहते हैं देता है।

AddMinutes एक नया डेटटाइम देता है जो इस उदाहरण के मान में निर्दिष्ट संख्याओं को जोड़ता है।

AddMonths एक नया डेटटाइम देता है जो इस उदाहरण के मूल्य में निर्दिष्ट संख्याओं को जोड़ता है।

AddSeconds एक नया डेटटाइम देता है जो इस उदाहरण के मान में निर्दिष्ट संख्याओं को जोड़ता है।

AddTicks एक नया डेटटाइम देता है जो इस उदाहरण के मूल्य में निर्दिष्ट संख्या में टिक जोड़ता है।

AddYears एक नया डेटटाइम देता है जो इस उदाहरण के मूल्य में निर्दिष्ट संख्या को जोड़ता है।

+0

इस पर आने वाले हर किसी के लिए: आप ऊपर दिए गए इन कार्यों का उपयोग कर सकते हैं और घटाए जाने के लिए ऋणात्मक मान का उपयोग कर सकते हैं, जब तक कि दिनांक दिनांक समय पर प्रारंभ नहीं किया गया हो। MinValue – Kimmax

6

अपने प्रारंभिक समय तत्व को पकड़ने और इस तरह के AddHours या AddMinutes तरीके के रूप में उपयोग करने के लिए TimeSpan वस्तु का प्रयोग करें। 3 घंटे घटाने के लिए, आप AddHours(-3) करेंगे।45 मिनट घटाना करने के लिए आपको AddMinutes(-45)

+0

'अपने प्रारंभिक समय तत्व को कैप्चर करने के लिए टाइमस्पेन ऑब्जेक्ट का उपयोग करें' - क्या आपका मतलब 'डेटटाइम' है? – Rawling

+0

मैं सिस्टम का उल्लेख कर रहा हूं। टाइमस्पेन प्रकार –

+1

लेकिन प्रारंभिक समय एक तत्काल है उदा। एक समय अवधि के बजाय 8:00 बजे उदा। 45 मिनटों। (माफ़ी भी, मुझे अभी एहसास हुआ कि यह एक पोस्ट कितनी पुरानी है।) – Rawling

7

क्या करेंगे यह भी काम करता है:

System.DateTime dTime = DateTime.Now(); 

// tSpan is 0 days, 1 hours, 30 minutes and 0 second. 
System.TimeSpan tSpan = new System.TimeSpan(0, 1, 3, 0); 

System.DateTime result = dTime + tSpan; 

एक साल घटाना करने के लिए:

DateTime DateEnd = DateTime.Now; 
DateTime DateStart = DateEnd - new TimeSpan(365, 0, 0, 0); 
0

कोशिश इस

namespace dateandtime 
{ 

    class DatesTime 
    { 

     public static DateTime Substract(DateTime now, int hours,int minutes,int seconds) 
     { 
      TimeSpan T1 = new TimeSpan(hours, minutes, seconds); 
      return now.Subtract(T1); 
     } 


     static void Main(string[] args) 
     { 
      Console.WriteLine(Substract(DateTime.Now, 36, 0, 0).ToString()); 

     } 
    } 
}