2011-01-24 16 views
6

में नकारात्मक मान डेटटाइम कन्स्ट्रक्टर को कॉल करते समय नकारात्मक मान सेट करने का कोई तरीका है।सी # डेटटाइम

इस तरह:

DateTime date = new DateTime(2011, 2, -1); 

ही होगा के रूप में:

DateTime date = new DateTime(2011, 1, 31); 

मैं इस अन्य भाषाओं में काम करता है पता है, लेकिन समस्या यह है कि सी # .net एक अपवाद जब मैं कर रहा हूँ फेंकता है यह कर रहा हूं। C# .net में ऐसा करने के तरीके पर कोई विचार?

+0

यह अलग-अलग .NET भाषा में अलग-अलग काम नहीं कर सकता है, क्योंकि 'डेटटाइम' सामान्य पुस्तकालय का हिस्सा है। – Andrey

+0

आप ऋणात्मक दिनांक का समय क्यों चाहते हैं? यदि आप समय घटाना चाहते हैं तो या तो उपयोग करें। एडडेज़ (-एक्स) या। एडमोन्थ (-एक्स) इत्यादि या टाइमस्पेन नामक एक और कक्षा है जिसे आप 1 बार पूरे दिन या 1 महीने के लिए उपयोग नहीं कर सकते हैं। – WraithNath

+0

@ WraithNath: मुझे उस सीमा के साथ अपने डायनासोर के जन्मदिन की याद दिलाने के लिए .NET में एक ऐप कैसे लिखना है!!!? – Mystra007

उत्तर

8

आप नहीं कर सकते। यदि आप महीने के आखिरी दिन को प्राप्त करना चाहते हैं, तो आपको या तो अगले महीने की शुरुआत से शुरू करना चाहिए और फिर एक दिन का समय निकालना चाहिए, या DateTime.DaysInMonth(year, month) का उपयोग करना चाहिए।

व्यक्तिगत रूप से मैं दूसरे दृष्टिकोण का उपयोग करता हूं, अन्यथा आपको यह सुनिश्चित करना होगा कि आप दिसंबर में अंतिम दिन सही तरीके से अगले वर्ष के 1 जनवरी से शुरू करके सही तरीके से ढूंढ सकें।

DateTime date = new DateTime(year, month, DateTime.DaysInMonth(year, month)); 
10

उपयोग

DateTime date = new DateTime(2011, 2,1).AddDays(-1); 
+0

मुझे याद है कि जब आप पहली बार शुरू करते हैं तो आप एक ऋण दिवस कैसे जोड़ सकते हैं .net: पी – nik0lias

+2

@ nik0lias: Hehe =) मेरे पास गणित में पृष्ठभूमि है, और यदि आप नकारात्मक मान जोड़ नहीं सकते हैं तो भ्रमित हो जाएगा! – Jens

1

एक DateTime हमेशा होता है समय में एक पूर्ण स्थिति: यहाँ कोड मैं का उपयोग करेंगे। मुझे लगता है कि आप जो खोज रहे हैं वह TimeSpan है, जो नकारात्मक भी हो सकता है।

संबंधित मुद्दे