arrays - Java: Date conversion output error -
इस सवाल का पहले से ही एक उत्तर है: < / p>
- 23 उत्तर
इस कार्यक्रम पर मुद्दों होने से आउटपुट सही मैंने उन मापदंडों को शामिल किया है जो एक वैध तिथि इनपुट (यानी 3/22/2014) बनाम एक अमान्य इनपुट (यानी 3/57/2014) बनाम समझने में सहायता करते हैं। ये I स्टेटमेंट में पाश के लिए मेरे भीतर स्थित हैं I हालांकि, जब मैं प्रोग्राम चलाता हूं, मैं और कथन का आउटपुट प्राप्त करता हूं और मुझे यकीन नहीं है कि क्यों। मैंने स्ट्रिंग और कोई भाग्य के साथ इंट से सरणी प्रकार स्विच किए हैं I क्या आप मेरी त्रुटि देखते हैं? धन्यवाद <पूर्व>
आयात करें java.util.Scanner; आयात javax.swing। *; सार्वजनिक वर्ग कन्वर्टडेट {सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {स्ट्रिंग प्रविष्ट दिनांक, महीने, दिन, वर्ष; अंतिम स्ट्रिंग [] महीनेआईडी = {"जनवरी", "फरवरी", "मार्च", "अप्रैल", "मई", "जून", "जुलाई", "अगस्त", "सितंबर", "अक्टूबर", "नवंबर" , "दिसंबर"}; अंतिम पूर्णांक [] महीनेआईडअरे = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; अंतिम स्ट्रिंग [] महीनेवास्तवसिनेलिंगइनपुट = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11" , "12"}; अंतिम स्ट्रिंग [] महीनाडालिडेट्स इन्पुट = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11" , "12"}; अंतिम स्ट्रिंग [] महीनेदिन = {"31", "28", "31", "30", "31", "30", "31", "31", "30", "31", "30" , "31"}; अंतिम अंत [] intDaysArray = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; अंतिम इंटिजियरी = 1; अंतिम पूर्णांक DECEMBER = 12; Int चयनितडेट; Int x; दर्ज किया गया डेट = जॉप्शनपेन। शो इन्पुटडिलाओग (रिक्त, "प्रारूप में दिनांक दर्ज करें एमएम / डीडी / वाई वाई वाई वाई");
/
इंट स्लैश इंडैक्स = डाट.एंडएक्सऑफ़ ("/") के अंदर निविष्टियाँ भेद करने के लिए अनुक्रमणिकाऑफ़ का उपयोग करना; // महीना महीना ढूँढना = प्रविष्टेड.substring (0, स्लैश इंडेक्स); int intMonth = पूर्णांक। पैरासेन्ट (महीना); दर्ज किया गयाडेट = प्रविष्टेड.substring (slashIndex + 1); दर्ज किया गया दिनांक = दर्ज किया गया डेट.ट्रिम (); // दिन का पता लगाना slashIndex = दर्ज किया गया दिनांक। इंडेक्सऑफ़ ("/"); दिन = दर्ज किया गया डेट substring (0, स्लैश इंडैक्स); int intDay = पूर्णांक.परसेन्ट (दिन); दर्ज किया गया दिनांक = दर्ज किया गया डेट.ट्रिम (); दर्ज किया गयाडेट = प्रविष्टेड.substring (slashIndex + 1); // वर्ष वर्ष ढूँढना = दर्ज किया गया दिनांक। शोर (0, 4); int intYear = पूर्णांक। पैरासेन्ट (वर्ष); दर्ज किया गया दिनांक = दर्ज किया गया डेट.ट्रिम ();
आउटपुट स्टेटमेंट्स
के लिए (x = 0; x & lt; monthID.length; ++ x) {if (((महीना == महीनाडालिज़िंगिंग इनपुट [ x]) || (महीना == महीनेवालिदडासइनपुट [x])) & amp; amp; (इंटडे & lt; = intDaysArray [x]) & amp; ((intMonth & gt; = जनवरी) & amp; (intMonth & lt; = DECEMBER))) यौप्शनपेन। शो मेसेज डिआलोग (रिक्त, "तिथि है:" + महीनाईड [x] + "+ + इंटडे +", "+ वर्ष); अन्य जॉप्शनपेन। शो मेसेजडिलाओग (रिक्त, "कृपया फिर से चलाने के कार्यक्रम, प्रविष्टियां मान्य नहीं हैं।"); टूटना; }}}}
प्राथमिक समस्या आपके
लूप के लिए थी । चूंकि आप
break स्टेटमेंट के अंदर
लूप के लिए का उपयोग कर रहे थे, यह आपकी पहली यात्रा के बाद समाप्त हो रहा था।
और आपके कोड के साथ एक अन्य मुद्दा कि, आप तारों की तुलना करने के लिए
== का उपयोग कर रहे थे आप
== ऑपरेटर का उपयोग करके दो स्ट्रिंग्स की तुलना नहीं कर सकते। >> दो स्ट्रिंग्स की तुलना करने के लिए आपको
बराबर () या
बराबर को अनदेखा करें () का उपयोग करना चाहिए।
आपको < मजबूत> 'आउटपुट स्टेटमेंट' सही आउटपुट प्राप्त करने के लिए। संशोधित कोड नीचे दिखाया गया है:
बूलियन झंडा = गलत;
के लिए (x = 0; x & lt; monthID.length; ++ x) {if (((महीना। बराबर (महीनावैलीसिङ्गल इन्पुटस [x])) || (महीना.एफ़ेल्स (महीनावॉलिडाओसइनपुट [x]))) और ; & amp; (intDay & lt; = intDaysArray [x]) & amp; ((intMonth & gt; = जनवरी) & amp; (intMonth & lt; = DECEMBER)) {JOptionPane.showMessageDialog (रिक्त, "तिथि है:" + माहियत [x] + "+ + इंटडे +", "+ वर्ष); झंडा = true टूटना; }} यदि (झंडा == झूठे) यौप्शनपेन। शो मेसेजडिलाओग (रिक्त, "कृपया फिर से चलाने वाला कार्यक्रम, प्रविष्टियां मान्य नहीं हैं।"); }}
Comments
Post a Comment