2010-11-12 9 views
5

क्या कोई मूल .NET क्लास है जो इस तरह के समय को संभालने में सक्षम है? मैं एक खोजने में सक्षम नहीं हूं।क्या मेरे कस्टम क्लास की तरह समय अवधि स्टोर करने के लिए कोई .NET तरीका है?

क्या कोई ऐसा नज़दीक आता है?

Public Class Period 

    Property FromDate As Date 
    Property ToDate As Date 

    Public Sub New(ByVal fromDate As Date, ByVal toDate As Date) 

     If fromDate > toDate Then 
      Throw New ArgumentException("fromDate must be less than Or equal toDate") 
     End If 

     _FromDate = fromDate 
     _ToDate = toDate 

    End Sub 

    Public Overloads Shared Operator =(ByVal period1 As Period, 
             ByVal period2 As Period) As Boolean 

     Return period1.FromDate = period2.FromDate AndAlso 
       period1.ToDate = period2.ToDate 

    End Operator 

    Public Overloads Shared Operator <>(ByVal period1 As Period, 
             ByVal period2 As Period) As Boolean 

     Return Not period1 = period2 

    End Operator 

    Public Overloads Shared Operator <(ByVal period1 As Period, 
             ByVal period2 As Period) As Boolean 

     Return period1.FromDate < period2.FromDate 

    End Operator 

    Public Overloads Shared Operator >(ByVal period1 As Period, 
            ByVal period2 As Period) As Boolean 

     Return period1.FromDate > period2.FromDate 

    End Operator 

    Public Overloads Shared Operator >=(ByVal period1 As Period, 
           ByVal period2 As Period) As Boolean 

     Return period1.FromDate >= period2.FromDate 

    End Operator 

    Public Overloads Shared Operator <=(ByVal period1 As Period, 
             ByVal period2 As Period) As Boolean 

     Return period1.FromDate <= period2.FromDate 

    End Operator 

    Public Function Contains(ByVal checkDate As Date) As Boolean 

     Return checkDate >= Me.FromDate AndAlso 
       checkDate < Me.ToDate 

    End Function 

    Public Overrides Function ToString() As String 
     Return Format(_FromDate, "MMM-yyyy") & "-" & Format(_ToDate, "MMM-yyyy")    
    End Function 

End Class 

और एक व्युत्पन्न महीने की अवधि:

Public Class MonthPeriod : Inherits Period 

    Private _MonthStartDate As Date 

    Public Sub New(ByVal dateInMonth As Date) 

     'Everything >= the 1st of the month to < the 1st of the next month 
     MyBase.New(New Date(dateInMonth.Year, dateInMonth.Month, 1), 
        New Date(dateInMonth.Year, dateInMonth.Month, 1).AddMonths(1)) 

     _MonthStartDate = New Date(dateInMonth.Year, dateInMonth.Month, 1) 

    End Sub 

    Public Overrides Function ToString() As String 
     Return Format(_MonthStartDate, "MMM-yyyy") 
    End Function 

End Class 
+3

क्या आपने टाइमस्पैन देखा है? – Nate

+1

डेटटाइम को टिक्स में कनवर्ट करें। फिर आप लंबे ऑपरेटर बुट-इन्स का उपयोग कर सकते हैं। – WeNeedAnswers

+1

मुझे यकीन नहीं है कि .NET टाइमस्पैन के साथ इसका कोई संबंध नहीं है। ओपी वास्तव में इस बात की रूचि नहीं रखते कि सीमा कितनी लंबी है, लेकिन सीमा के अंत बिंदु। – Greg

उत्तर

4

संक्षिप्त उत्तर: मुझे नहीं लगता कि कोई भी अंतर्निर्मित कक्षा है जो उसके करीब है। शायद निकटतम टाइमस्पैन है लेकिन यह पूर्ण शुरुआत या समाप्ति तिथि की कोई अवधारणा के साथ सिर्फ एक सापेक्ष अवधि है।

+0

धन्यवाद। मैंने टाइमस्पेन ऑब्जेक्ट देखा और यह अधूरा लग रहा था क्योंकि इसकी कोई प्रारंभ और समाप्ति तिथि नहीं थी। चूंकि टाइमस्पैन एक संरचना है, इसलिए मैं इसका उत्तराधिकारी नहीं हो सकता, लेकिन शायद मैं अपनी कक्षा में टाइमस्पेन संपत्ति बना सकता हूं – VJK

1

मैं अपने सभी कोड को पढ़ने के लिए नहीं किया था। आपका कार्यान्वयन अधिक कार्यक्षमता प्रदान कर सकता है लेकिन नेट फ्रेमवर्क कार्यान्वयन को टाइमस्पेन कहा जाता है।

यह सिस्टम नेमस्पेस में है।

http://msdn.microsoft.com/en-us/library/system.timespan(v=VS.90).aspx

TimeSpan सबसे बड़ा इकाई के रूप में दिनों तक सीमित है। यानी महीनों या वर्षों के मामले में कोई माप नहीं है। हालांकि जरूरत पड़ने पर इसे बढ़ाया जा सकता है।

2

.NET मानक टाइमस्पैन का उपयोग करें। यदि आवश्यक हो, तो टाइमस्पेन प्राप्त करने वाली एक नई कक्षा बनाएं लेकिन आवश्यकतानुसार नई विधियां जोड़ें।

+0

टाइमस्पेन एक संरचना है, कक्षा नहीं। आप इससे प्राप्त नहीं कर सकते हैं। Ia dded tghjis संपत्ति: सार्वजनिक पढ़ने के लिए समय टाइमपैन टाइमस्पेन प्राप्त करें मुझे वापस लौटें। टोडेट - मी। फ्रॉमडेट अंत अंत संपत्ति – VJK

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

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