2012-05-31 10 views
8

में दो तिथियों के बीच महीने की संख्या की गणना कैसे कर सकता हूं, मैं जानना चाहता हूं कि दो तिथियों के बीच महीने की संख्या की गणना कैसे करें। सी # में इसकी गणना करने के लिए कोई तरीका है?मैं सी #

Eg1. Date1 = "2011/11/01" 
     Date2 = "2012/02/01"  
Result. Numbers of Month =3 

Eg2. Date1 = "2012/01/31" 
     Date2 = "2012/02/01" 
Result. Numbers of Month =1 

Eg3. Date1 = "2012/01/01" 
     Date2 = "2012/02/28" 
Result. Numbers of Month =1 
+2

कैसे कुछ और परीक्षण मामलों के बारे में? आपकी समस्या underspecified है। यह उन समस्याओं में से एक है जहां आप जो चाहते हैं उसे समझने से इसे कठिन बनाना मुश्किल है। – CodesInChaos

+3

http://stackoverflow.com/questions/1525990/difference-in-months –

+1

सबसे पहले आपको "दो तिथियों के बीच महीनों की संख्या" का स्पष्ट विचार होना चाहिए। 2012-01-25 से 2012-02-01 या 2012-02-24 की तरह आदि। यदि आप करते हैं, तो जवाबों की जांच करें यदि वे आपके विचार के अनुरूप हैं। –

उत्तर

11

इस महीने के बीच अंतर दे देंगे:

int months = (Date2.Year - Date1.Year) * 12 + Date2.Month - Date1.Month; 
+2

ओपी वास्तव में क्या चाहता है इसके आधार पर यह एक संभावित उत्तर है। उदाहरण के लिए यह महीनाबेटवीन (2012-06-01, 2012-05-31) के लिए 1 लौटाएगा, जो ओपी चाहता है या नहीं हो सकता है। – CodesInChaos

+0

यह महीने के दिन को ध्यान में रखता है। उदाहरण के लिए, यह 31 मई और 1 जून के बीच 1 मई और 31 जून के बीच के समान महीनों देगा। मुझे नहीं लगता कि बहुत से लोग उस परिणाम की अपेक्षा करेंगे। –

+0

@ जोन स्कीट: मुझे अपने अस्पष्ट प्रश्न के लिए बहुत खेद है। मैं सिस्टम की आवश्यकताओं के कारण महीने के दिन को ध्यान में रखना नहीं चाहता हूं। अब मैंने अपना प्रश्न संपादित कर लिया है। – lelewin

8

मेरे Noda Time परियोजना इस के लिए प्रदान करता है:

LocalDate date1 = new LocalDate(2011, 11, 1); 
LocalDate date2 = new LocalDate(2012, 2, 1); 
Period period = Period.Between(date1, date2, PeriodUnits.Months); 
long months = period.Months; // 3 

अधिक जानकारी के लिए project documentation for arithmetic देखें।