android - दिनों का नाम स्ट्रिंग फ़ॉर्मेट में दिन के साथ फ़िरूर करने के लिए




calendar dayofweek (2)

मुझे हफ्ते में दिन का नाम होना चाहिए, लेकिन वास्तविक दिनांक और भविष्य की तारीख पर निर्भर। उदाहरण के लिए मुझे आज के दिन की आवश्यकता है, कल दिन का नाम, तारीख का नाम +2 दिन आदि। मैं यह कोड बना रहा हूं लेकिन अच्छा काम नहीं कर रहा हूं। तो क्या कोई बेहतर तरीका है कि मैं एंड्रॉइड को दिन का नाम कैसे प्राप्त करूं?

 public String getDay3Name() {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        String[] days = new String[] { "SUNDAY","SUNDAY","SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" };
        String day = days[calendar.get(Calendar.DAY_OF_WEEK)+1];
        return day;
    }
    public String getDay4Name() {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        String[] days = new String[] { "SUNDAY","SUNDAY","SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" };
        String day = days[calendar.get(Calendar.DAY_OF_WEEK)+2];
        return day;
    }

आप सीधे उपयोग कर सकते हैं

calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);

जहां कैलेंडर का उपयोग करके सेट किया गया है

calendar.setTime();

आप दिन में कैलेंडर सेट कर सकते हैं -

calendar.set(int year, int month, int day);

उम्मीद है की वो मदद करदे


सबसे पहले, आप एक स्ट्रिंग सरणी से दिन के नाम प्राप्त करने के साथ अच्छी तरह से कर रहे हैं, लेकिन बेहतर होगा यदि आप उन्हें भविष्य में एकाधिक भाषा समर्थन के लिए संसाधन (स्ट्रिंग.एक्सएमएल) से प्राप्त करें।

दूसरे, आपको पता होना चाहिए कि आप calendar.get(Calendar.DAY_OF_WEEK) का क्या परिणाम प्राप्त कर रहे हैं। calendar.get(Calendar.DAY_OF_WEEK)calendar.get(Calendar.DAY_OF_WEEK) ; तरीका:

Calendar.SUNDAY    = (1)
Calendar.MONDAY    = (2)
Calendar.TUESDAY   = (3)
Calendar.WEDNESDAY = (4)
Calendar.THURSDAY  = (5)
Calendar.FRIDAY    = (6)
Calendar.SATURDAY  = (7)

अंत में, आपका दिन का नाम सरणी गलत है;

new String[] { "SUNDAY","SUNDAY","SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" };

यह होना चाहिए;

new String[] {"SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" };

और आप नीचे तरीकों की कोशिश कर सकते हैं, वे सिर्फ थोड़े ही आपके द्वारा संशोधित हैं।

/**
 * 
 * @param next
 * @return
 * 
 * send next 0 if you want to get current day name 
 */
public String getDayName(int next) {
    int dayIndex = getCurrentDayIndex() - 1;
    dayIndex += next;
    dayIndex = dayIndex % 7;

    String[] days = new String[] {"SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" };
    String day = days[dayIndex];
    return day;
}

/**
 * 
 * @return  1,2,3,4,5,6 or 7
 */
public int getCurrentDayIndex() {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(new Date());   
    int dayIndex = calendar.get(Calendar.DAY_OF_WEEK);
    return dayIndex;
}