سؤال

كنت أتساءل عما إذا كانت هناك طريقة لتحويل عدد صحيح مباشرة DayOfWeek يعود إلى سلسلة تمثل اليوم مثل الاثنين ، الثلاثاء وما إلى ذلك.

عينة من الرموز:

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

شكرًا :)

هل كانت مفيدة؟

المحلول

طريقة أبسط:

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

نصائح أخرى

datetimeformatinfo.currentinfo.getDayName.

هناك تنسيق لوقت البيانات لذلك: 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/8kb3dddd4.aspx#ddddddecifier

DateTime.DayOfWeek لا يعيد عدد صحيح - إنه يعيد التعداد من النوع DayOfWeek. أتوقع أن يتم تحويلها إلى الاسم تلقائيًا ، ولكن ربما يكون هذا دقة VB ؛ ربما شيء يجب فعله باستخدام Date بدلاً من DateTime؟ جرب هذا:

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

لن يكون هذا حساسًا للثقافة - سيعرض دائمًا اسم قيمة التعداد ، باللغة الإنجليزية. إذا لم يكن ذلك جيدًا بالنسبة لك ، فاستخدم حل Zyphrax أو Itowlson.

Date.Today.DayOfWeek.ToString سوف يعطيك ما تبحث عنه. جميل وسهل.

فقط في حالة نظر الآخرين إلى هذا المثال. أعتقد أنه ينبغي أن يكون الحالة 0 ليوم الأحد.

Case 0 
    day = "Sunday"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top