java - एंड्रॉइड कैलेंडर स्ट्रिंग के रूप में सप्ताह का वर्तमान दिन मिलता है




android calendar (4)

आपको कैलेंडर के साथ दिन ओफ़वाईक की तुलना सीधे करना है। सोमवार आदि। नीचे कोड देखें

इसके अलावा, मैंने ब्रैकेट्स को चारों ओर रखा है अगर दूसरा कोड प्रवाह के लिए इंडेंटेशन पर भरोसा मत करो, स्पष्ट रूप से ब्रैकेट डालें, भले ही आपके-दूसरे के पास केवल एक कथन है।

    public static void main(String[] args) {

    String weekDay = "";

    Calendar c = Calendar.getInstance();
    int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);

    if (Calendar.MONDAY == dayOfWeek) {
        weekDay = "monday";
    } else if (Calendar.TUESDAY == dayOfWeek) {
        weekDay = "tuesday";
    } else if (Calendar.WEDNESDAY == dayOfWeek) {
        weekDay = "wednesday";
    } else if (Calendar.THURSDAY == dayOfWeek) {
        weekDay = "thursday";
    } else if (Calendar.FRIDAY == dayOfWeek) {
        weekDay = "friday";
    } else if (Calendar.SATURDAY == dayOfWeek) {
        weekDay = "saturday";
    } else if (Calendar.SUNDAY == dayOfWeek) {
        weekDay = "sunday";
    }

    System.out.println(weekDay);

}

मैंने इस वास्तविक सप्ताह के दिन के नाम से एक स्ट्रिंग प्राप्त करने की कोशिश की:

            Calendar c = Calendar.getInstance();
            int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);

            if (c.get(Calendar.MONDAY) == dayOfWeek) weekDay = "monday";
            else if (c.get(Calendar.TUESDAY) == dayOfWeek) weekDay = "tuesday";
            else if (c.get(Calendar.WEDNESDAY) == dayOfWeek) weekDay = "wednesday";
            else if (c.get(Calendar.THURSDAY) == dayOfWeek) weekDay = "thursday";
            else if (c.get(Calendar.FRIDAY) == dayOfWeek) weekDay = "friday";
            else if (c.get(Calendar.SATURDAY) == dayOfWeek) weekDay = "saturday";
            else if (c.get(Calendar.SUNDAY) == dayOfWeek) weekDay = "sunday";

लेकिन weekDay हमेशा अशक्त रहता है और वास्तव में मुझे पता नहीं है क्यों कि डिबगर कहता है कि उस dayOfWeek c.get(Calendar.THURSDAY) 5 है, इसलिए मुझे c.get(Calendar.THURSDAY) बराबर होना चाहिए।


c.get का उपयोग करने की कोई आवश्यकता नहीं थी

    Calendar c = Calendar.getInstance();
    int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);                

    if (Calendar.MONDAY == dayOfWeek) weekDay = "monday";
    else if (Calendar.TUESDAY == dayOfWeek) weekDay = "tuesday";
    else if (Calendar.WEDNESDAY == dayOfWeek) weekDay = "wednesday";
    else if (Calendar.THURSDAY == dayOfWeek) weekDay = "thursday";
    else if (Calendar.FRIDAY == dayOfWeek) weekDay = "friday";
    else if (Calendar.SATURDAY == dayOfWeek) weekDay = "saturday";
    else if (Calendar.SUNDAY == dayOfWeek) weekDay = "sunday";

    System.out.println(weekDay);

और आउटपुट:

thursday

यदि आप c.get साथ इस कोड के साथ मूल्यों को मुद्रित करने का प्रयास करते हैं तो आप अपनी त्रुटि देख सकते हैं

    System.out.println(c.get(Calendar.MONDAY));
    System.out.println(c.get(Calendar.TUESDAY));
    System.out.println(c.get(Calendar.WEDNESDAY));
    System.out.println(c.get(Calendar.THURSDAY));
    System.out.println(c.get(Calendar.FRIDAY));
    System.out.println(c.get(Calendar.SATURDAY));
    System.out.println(c.get(Calendar.SUNDAY));

उदाहरण के लिए मुझे मिलते हैं:

7
33
3
15
227
5
2013

और परिणाम गलत होगा, मेरे मामले में मुझे Sunday रूप में Sunday weekDay यदि मैं अपना कोड इस्तेमाल करता weekDay तो


मैंने निम्न कार्य करके इसे पूरा किया:

String weekDay;
SimpleDateFormat dayFormat = new SimpleDateFormat("EEEE", Locale.US);

Calendar calendar = Calendar.getInstance();
weekDay = dayFormat.format(calendar.getTime());
  • "ईईईई" के लिए दिन के स्वरूप का उपयोग करें, पूरे सप्ताह के दिन का नाम वापस आ जाएगा, अर्थात मंगलवार
  • "ई" के लिए दिन प्रारूप का उपयोग संक्षिप्त नाम वापस करेगा, अर्थात् मंगल
  • एंड्रॉइड में इस प्रारूप को वापस लाने के लिए एक और लाभ यह है कि यह स्थानीय स्तर पर आधारित सप्ताह के दिन का अनुवाद करेगा।

आप अधिक जानने के लिए SimpleDateFormat की समीक्षा करना चाहेंगे । मुझे लगता है कि यह एक साफ दृष्टिकोण है जिसमें आपको स्विच या अगर कथन की ज़रूरत नहीं है अगर स्ट्रिंग वैल्यू प्राप्त करने की आवश्यकता है।


इस रूप में सरल रूप में

sCalendar = Calendar.getInstance();
String dayLongName = sCalendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.getDefault());