2010-08-11 8 views
18

मेरे पास यह लूप है, इसका उद्देश्य तिथियों की एक श्रृंखला के माध्यम से लूप करना है और डेटाबेस में प्रविष्टियों को स्वचालित करने के लिए कुछ तर्क करना है। मुद्दा यह है कि बढ़ते हिस्से, दिनांक। एडडेज़ (1.0) काम नहीं कर रहा है, और हमेशा एक ही परिणाम है, जिसके कारण अनंत लूप होता है। कोई अंतर्दृष्टि?फॉर लूप में डेटटाइम का उपयोग करके, बढ़ती हुई तारीख काम नहीं कर रही है

for (DateTime date = DateTime.Now; futureDate.CompareTo(date) > 0; date.AddDays(1.0)) 
{ 
    // logic here 
} 

उत्तर

55

DateTime.AddDaysdate को संशोधित किए बिना एक नया उदाहरण देता है। फिलहाल आप इस नए उदाहरण को फेंक रहे हैं।

for (DateTime date = DateTime.Now; futureDate.CompareTo(date) > 0; date = date.AddDays(1.0)) 
{ 
    // logic here 
} 

इसके अलावा, मैं यकीन नहीं है जब आप < ऑपरेटर इस्तेमाल कर सकते हैं तुम क्यों CompareTo कॉल कर रहे हैं: इसके बजाय, आप सब करने की ज़रूरत। मैं नहीं बता सकता कि CompareTo(date) > 0, एक पल के लिए इस बारे में सोच के बिना सही है जबकि < ऑपरेटर की मंशा स्पष्ट है:

for (DateTime date = DateTime.Now; date < futureDate; date = date.AddDays(1.0)) 
{ 
    // logic here 
} 
7

दिनांक समय अपरिवर्तनीय है। इसमें बदलें: दिनांक = दिनांक। एडडेज़ (1.0)

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