2010-08-23 6 views
5

प्रदान नहीं करता है हम कैलेंडर का उपयोग कर रहे हैं। roll या तो तिथियों को ऊपर या नीचे ले जाने के लिए। जावाडोक का उल्लेख है कि बड़े फ़ील्ड संशोधित नहीं होते हैं (यानी अगर हम महीने के पहले दिन से शुरू होने वाली तारीख को बाईं ओर 5 तक ले जाते हैं, दुर्भाग्यवश कैलेंडर.getTime() मुझे पिछले महीने से कोई मूल्य नहीं मिलता है) । महीने का मूल्य अपरिवर्तित बनी हुई है, मैं इस व्यवहार को कैसे बदलूं। मैं वास्तव में तारीख मूल्य को उपयुक्त के रूप में स्थानांतरित करना चाहता हूं। (उदाहरण के लिए यदि मैं 1 अगस्त, 2010 को बाईं ओर 5 दिन स्थानांतरित कर दिया - मैं 27 अगस्त, 2010 के बजाय 27 जून, 2010 को देखना चाहता हूं)। मुझे यहां क्या समझ नहीं आ रहा है?कैलेंडर रोल ऑपरेशन मुझे सही आउटपुट

उत्तर

10

आप नकारात्मक amount के साथ Calendar.add का उपयोग कर सकते हैं।

7

रोल नियम जांच के कारण आपको add(Calendar.DATE, -5) method from Calendar का उपयोग करने की आवश्यकता होगी।

roll विधि के रूप में वर्णन किया गया है:

बदलते बड़े क्षेत्र के बिना field एक हस्ताक्षरित राशि में जोड़े। एक नकारात्मक रोल राशि का अर्थ है बड़े क्षेत्रों को बदलने के बिना फ़ील्ड से घटाना।

उदाहरण: विचार करें एक GregorianCalendar मूल रूप से 31 अगस्त तक निर्धारित करते हैं, 1999 roll(Calendar.MONTH, 8) सेट कैलेंडर कॉलिंग 30 अप्रैल, 1999 को एक ग्रेगोरी कैलेंडर का उपयोग करना, DAY_OF_MONTH क्षेत्र महीने अप्रैल में 31 नहीं हो सकता। DAY_OF_MONTH निकटतम संभावित मान पर सेट है, 30. YEAR फ़ील्ड 1 999 के मान को बनाए रखता है क्योंकि यह MONTH से बड़ा क्षेत्र है।

उदाहरण: एक GregorianCalendar मूल रूप से रविवार को सेट 6 जून, 1999 roll(Calendar.WEEK_OF_MONTH, -1) सेट कैलेंडर कॉलिंग मंगलवार तक 1 जून, 1999 पर विचार करें, add(Calendar.WEEK_OF_MONTH, -1) सेट रविवार तक कैलेंडर बुला 30 मई, 1999 जबकि यह वह जगह है क्योंकि रोल नियम एक अतिरिक्त बाधा लगाता है: MONTH WEEK_OF_MONTH रोल किया गया है जब नहीं बदला जाना चाहिए। ऐड नियम 1 के साथ एक साथ ले ली, उसके एवज में तारीख जून, मंगलवार और शनिवार 1 के बीच 5 जून अनुसार, नियम 2 जोड़ने के लिए DAY_OF_WEEK, होना चाहिए एक अपरिवर्तनीय जब बदलते WEEK_OF_MONTH, पर सेट है मंगलवार, निकटतम रविवार को संभव मूल्य (जहां रविवार सप्ताह का पहला दिन है)।

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