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




calendar dayofweek days (4)

मुझे हफ्ते में दिन का नाम होना चाहिए, लेकिन वास्तविक दिनांक और भविष्य की तारीख पर निर्भर। उदाहरण के लिए मुझे आज के दिन की आवश्यकता है, कल दिन का नाम, तारीख का नाम +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;
    }

Answers

import java.util.Calendar;
import java.util.Locale;


public class CalSample {

    private static final int TODAY = 0;
    private static final int TOMORROW = 1;
    private static final int DAY_AFTER_TOMORROW = 2;
    private static final int THREE_DAYS_FROM_TODAY = 3;
    private static final int FOUR_DAYS_FROM_TODAY = 4;
    private static final int FIVE_DAYS_FROM_TODAY = 5;
    private static final int SIX_DAYS_FROM_TODAY = 6;

    public static void main(String args[]){
        CalSample calSample = new CalSample();
        calSample.getNameOfDayOfWeek(TODAY);
        calSample.getNameOfDayOfWeek(TOMORROW);
        calSample.getNameOfDayOfWeek(DAY_AFTER_TOMORROW);
        calSample.getNameOfDayOfWeek(THREE_DAYS_FROM_TODAY);
        calSample.getNameOfDayOfWeek(FOUR_DAYS_FROM_TODAY);
        calSample.getNameOfDayOfWeek(SIX_DAYS_FROM_TODAY);

    }
    public String getNameOfDayOfWeek(int noOfDaysFromToday){
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DAY_OF_YEAR, noOfDaysFromToday);
        String name = calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.ENGLISH);
        System.out.println("Day Of Week:- " + name);
        return name;
    }
}

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

दूसरे, आपको पता होना चाहिए कि आप 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;
}

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

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

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

calendar.setTime();

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

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

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






android calendar dayofweek days