2013-08-20 6 views
6

के साथ जावा में दिनों की संख्या मैं जानना चाहूंगा कि जावा में सभी सप्ताह के दिनों में मौजूदा एनम है या नहीं। मैं समय तर्क का इलाज करने के लिए कैलेंडर का उपयोग कर रहा हूं लेकिन मुझे ऐसा कुछ नहीं मिला (मैं इसे स्वयं बना सकता हूं लेकिन मैं कुछ मौजूदा उपयोग नहीं कर रहा हूं)। मैंने threeten project भी देखा लेकिन यह अभी भी अल्फा में है। चूंकि सप्ताह के दिनों वाले एक enum इतनी तुच्छ है कि यह enum दस्तावेज में सूर्य द्वारा दिखाया गया है, मैं सोच रहा था कि कुछ पहले से मौजूद हो सकता है। कोई विचार ?कैलेंडर में

+1

यदि आप एक सैने दिनांक और समय एपीआई की तलाश में हैं, तो http://www.joda.org/joda-time/ पर एक नज़र डालें - यदि उनके पास दिन का सप्ताह नहीं है, हालांकि। आपको एक की आवश्यकता क्यों है? –

+0

@ फिलिप रिचर्ट मैं प्रत्येक दिन के लिए एक कॉलम के साथ जेएसपी में टेबल प्रदर्शित करना चाहता हूं। – fxm

+0

तो यह i18n के बारे में है? – atamanroman

उत्तर

2

कैलेंडर वर्ग में, वहाँ है:

/** 
* Value of the {@link #DAY_OF_WEEK} field indicating 
* Sunday. 
*/ 
public final static int SUNDAY = 1; 

/** 
* Value of the {@link #DAY_OF_WEEK} field indicating 
* Monday. 
*/ 
public final static int MONDAY = 2; 

/** 
* Value of the {@link #DAY_OF_WEEK} field indicating 
* Tuesday. 
*/ 
public final static int TUESDAY = 3; 

/** 
* Value of the {@link #DAY_OF_WEEK} field indicating 
* Wednesday. 
*/ 
public final static int WEDNESDAY = 4; 

/** 
* Value of the {@link #DAY_OF_WEEK} field indicating 
* Thursday. 
*/ 
public final static int THURSDAY = 5; 

/** 
* Value of the {@link #DAY_OF_WEEK} field indicating 
* Friday. 
*/ 
public final static int FRIDAY = 6; 

/** 
* Value of the {@link #DAY_OF_WEEK} field indicating 
* Saturday. 
*/ 
public final static int SATURDAY = 7; 

(स्रोत: java.util.Calendar)

नहीं एक enum क्योंकि वहाँ कोई भी थे जब कैलेंडर JDK 1.1 में पेश किया गया था।

+0

मुझे पता है कि मैं हर दिन पहुंच सकता हूं। मैं जो चाहता हूं वह एक सूची है जो इसे स्वयं बनाने के बिना पूरे दिन है। इसके अलावा, मैं स्ट्रिंग मान रखना चाहता हूं, int नहीं। – fxm

+0

@ एफएक्सएम, यदि आप इसे चाहते हैं तो आपको अपने आप को enum बनाना चाहिए, इसमें बहुत समय नहीं लगेगा। जैसा कि कहा गया है, 'कैलेंडर' वर्ग को जावा – SpongeBobFan

+1

में आने से पहले पेश किया गया था, मुझे लगता है कि मैं ऐसा करूँगा, यह सिर्फ एक अजीब बात है जैसे कि यह पहले से मौजूद नहीं है। – fxm

2

java.util.Calendar जैसी पुरानी पुरानी तिथि-समय कक्षाएं अब विरासत, जावा.टाइम कक्षाओं द्वारा आपूर्ति की जाती हैं।

java.time.DayOfWeek enum

जावा अब java.time.DayOfWeek enum भी शामिल है।

अपने कोड को अधिक आत्म-दस्तावेज बनाने, टाइप-सुरक्षा प्रदान करने और मान्य मानों की एक श्रृंखला सुनिश्चित करने के लिए केवल पूर्णांक 1-7 की बजाय इस enum की वस्तुओं के चारों ओर पास करें।

invoices.printReportForDayOfWeek(DayOfWeek.MONDAY); 

संख्या आईएसओ 8601 मानक प्रति सोमवार से रविवार के लिए 1-7 है।

getDisplayName पर कॉल करके दिन का एक स्थानीय नाम प्राप्त करें।

String output = DayOfWeek.MONDAY.getDisplayName(TextStyle.FULL , Locale.CANADA_FRENCH) ; // Or Locale.US, etc. 

सप्ताह के कई दिनों ट्रैक करने के लिए, एक EnumSet (Set के कार्यान्वयन) या EnumMap (Map के कार्यान्वयन) का उपयोग करें।

Set<DayOfWeek> weekend = EnumSet.of(DayOfWeek.SATURDAY , DayOfWeek.SUNDAY) ; 
… 
Boolean todayIsWeekend = weekend.contains(LocalDate.now(ZoneId.of("America/Montreal")).getDayOfWeek()); 

java.time

बारे java.time ढांचे जावा 8 और बाद में बनाया गया है। ये कक्षाएं पुरानी परेशानी वाली डेट-टाइम कक्षाएं जैसे java.util.Date, .Calendar, & java.text.SimpleDateFormat प्रदान करती हैं।

Joda-Time प्रोजेक्ट, अब maintenance mode में, जावा.टाइम पर माइग्रेशन की सलाह देता है।

और जानने के लिए, Oracle Tutorial देखें। और कई उदाहरणों और स्पष्टीकरणों के लिए स्टैक ओवरफ़्लो खोजें।

java.time कार्यक्षमता की ज्यादातर ThreeTen-Backport में जावा 6 & से 7 वापस भेजा जाता है और आगे ThreeTenABP में Android के लिए अनुकूलित।

ThreeTen-Extra प्रोजेक्ट अतिरिक्त कक्षाओं के साथ जावा.टाइम बढ़ाता है। यह परियोजना java.time के संभावित भविष्य के जोड़ों के लिए एक सिद्ध भूमि है। आपको यहां कुछ उपयोगी कक्षाएं मिल सकती हैं जैसे Interval, YearWeek, YearQuarter, आदि।

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