2010-01-30 4 views
8

अगर वहाँ एक तरह से सीधे एक स्ट्रिंग सोमवार की तरह दिन का प्रतिनिधित्व करने में पूर्णांक DayOfWeek रिटर्न कन्वर्ट करने के लिए था मैं सोच रहा था, मंगलवार आदिएक स्ट्रिंग के लिए सप्ताह का दिन enum परिवर्तित दिन

नमूना कोड repesenting:

MessageBox.Show(Date.Today.DayOfWeek) 

यह 6 (आज के रूप में) वापस आ जाएगा। उदाहरण के लिए, इसे Saturday में सीधे रूपांतरित करने का कोई तरीका है? मैं वास्तव में परवाह नहीं है क्या यह वास्तव में में परिवर्तित कर, लेकिन मैं अपने प्रकरण चयन युक्त दूर करना चाहते हैं:

Select Case Date.Today.DayOfWeek 
    Case 0 
     day = "Sunday" 
    Case 1 
     day = "Monday" 
    Case 2 
     day = "Tuesday" 
    Case 3 
     day = "Wednesday" 
    Case 4 
     day = "Thursday" 
    Case 5 
     day = "Friday" 
    Case 6 
     day = "Saturday" 
    Case Else 
     day = "Apocalypse: we're all boned." 
End Select 

धन्यवाद :)

+0

मुझे नहीं लगता कि .NET ढांचा आपके 'केस एल्से' का समर्थन करता है। बहुत बुरा ... – Thomas

+0

शायद कुछ एमएस को देखना चाहिए ... यह एक दिन होगा। हालांकि मुझे कोड में बाद में 'दिन' का उपयोग करके त्रुटियां मिलती हैं, यदि यह वहां नहीं है: पी – James

+0

'केस एलसे' का उपयोग करने में कुछ भी गलत नहीं है। दिन का नाम पाने के आसान तरीके हैं। हालांकि, जैसा कि जॉन ने इंगित किया था, डेऑफविक एक enum प्रकार है, इसलिए यह 0 से 6 के अलावा कभी भी कुछ भी नहीं होगा। – CoderDennis

उत्तर

5

एक सरल रास्ता:

Dim day As String = Date.Today.DayOfWeek.ToString() 
+0

चीयर्स, काम किया। 'ToString()' विधि की जांच की जानी चाहिए :) – James

+0

यह केवल अंग्रेज़ी के लिए काम करता है ... – ghord

+0

@ इस तकनीक को इस तकनीक को केवल एक स्ट्रिंग मान में एक गणना को बदलना; आप शायद 'डेटटाइम। आज। टॉस्ट्रिंग ("डीडीडीडी", नई संस्कृतिइन्फो ("पीटी-बीआर") जैसे कुछ करेंगे,' –

0

DateTime.DayOfWeek एक पूर्णांक वापस नहीं करता है - यह एक enum रिटर्न DayOfWeek टाइप करें। मैं उम्मीद करता हूं कि स्वचालित रूप से नाम में परिवर्तित किया जाए, लेकिन शायद यह एक वीबी subtlety है; शायद DateTime के बजाय Date का उपयोग करने के साथ कुछ करना है? इसे आज़माएं:

MessageBox.Show(DateTime.Today.DayOfWeek.ToString()) 

यह संस्कृति-संवेदनशील नहीं होगा हालांकि - यह हमेशा अंग्रेजी में enum value का नाम प्रदर्शित करेगा। यदि यह आपके लिए अच्छा नहीं है, तो ज़िफ्रैक्स या इटॉल्सन के समाधान का उपयोग करें।

+0

यह invariant (यूएस अंग्रेज़ी) नाम वापस कर देगा; किसी डेटाबेस या जो कुछ भी डिबगिंग या भंडारण के लिए ठीक है, लेकिन यदि वह इसे प्रदर्शित कर रहा है तो उसे स्ट्रिंग को स्थानीय करने वाले कुछ का उपयोग करना चाहिए। – itowlson

+0

@itowlson: मैं बस कुछ समान कहने के लिए संपादन कर रहा था, लेकिन कम विशेष रूप से। नहीं * हर * यूआई को स्थानीयकृत करने की जरूरत है, आईएमओ। बहुत सारे ऐप्स हैं जो कभी भी एक भाषा में होंगे (गैर-अंतरराष्ट्रीय कंपनियों के लिए आंतरिक ऐप्स सोचें)। अगर वह भाषा अंग्रेजी है, जो जीवन को और भी आसान बनाती है। –

+0

धन्यवाद। और यह कोड सिर्फ मेरे फॉर्म में कुछ टेक्स्टबॉक्स को एक समय सारिणी क्रम में संदर्भित करने के लिए है।प्रदर्शित होने वाला वास्तविक डेटा डेटाबेस से आ रहा है :) – James

2

वहाँ उस के लिए दिनांक समय प्रारूप है: dddd

Dim date1 As Date = #08/29/2008 7:27:15PM# 
date1.ToString("dddd", CultureInfo.CreateSpecificCulture("en-US")) 

CultureInfo के साथ आप किसी विशिष्ट भाषा में प्राप्त कर सकते हैं (यह वैकल्पिक है)

अधिक जानकारी के लिए: http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx#ddddSpecifier

0

Date.Today.DayOfWeek.ToString आपको वह चीज़ देगा जो आप ढूंढ रहे हैं। अच्छा और आसान।

-1

बस अगर दूसरे ने इस उदाहरण को देखा तो। मेरा मानना ​​है कि यह रविवार के लिए केस 0 होना चाहिए।

Case 0 
    day = "Sunday" 
+0

आपके पास जो कुछ है, वह सवाल पर एक टिप्पणी है, जवाब नहीं। नियमों को रोकने के जवाब के रूप में टिप्पणी पोस्ट करना अनिवार्य रूप से मॉडरेटर हस्तक्षेप की ओर जाता है। – Louis

+0

अच्छा लगता है। लेकिन मैंने इस उदाहरण कोड की खोज की, और यह सवाल से परे गलत था। मैंने इसे समझने में कुछ समय बिताया। मुझे लगता है कि इसे भविष्य के उपयोगकर्ताओं के लिए इंगित किया जाना चाहिए, यहां तक ​​कि सवाल का जवाब पहले से ही दिया गया था। –