تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] مشكلة ضبط التاريخ ليدخل دائما شهر/يوم/سنة
#1
اخوانى الأعزاء ..
السلام عليكم
عندى مشكلة أتمنى مناقشتها و حلها سويا ...
التاريخ عموما (الميلادى طبعا ) بيكون على الصورة يوم - شهر-سنة 
أنا أريد أن التاريخ عندما يدخل الى البرنامج أو الى الكود ( أيا كان فورماته بالكمبيوتر ) يدخل على الصيغة  : شهر/يوم/سنة
كيف يمكن ذلك ؟؟؟
الرد }}}}
تم الشكر بواسطة:
#2
أولاً أدرج الأداة DateTimePicker

ثانياً عدل في الكود كما ترغب بالنسبة للتنسيق


إقتباس :
 TextBox1.Text = DateTimePicker1.Value.Day & "/" & DateTimePicker1.Value.Month & "/" & DateTimePicker1.Value.Year
الرد }}}}
تم الشكر بواسطة:
#3
الشئ الجميل في البرمجة انك تستطيع أن تحل هذا النوع من المشاكل بأكثر من طريقة
والمثال التالي يعبر عن واحدا من هذه الطرق
و الفكرة ببساطة إنك تبني كلاس و تكون مدخلاته عبارة عن اليوم و الشهر و السنة ثم تسترجع قيمة هذا الكلاس و تستخدمه داخل الكود الخاص بك بالطريقة التي تحلو لك و الميزة في هذا الأسلوب إنك تستطيع أن تضيف مزايا للكلاس في صورة دوال و صفات ليست موجودة في DateTime الموجود في الدوت نت

هذا هو الشكل المبدئي للكلاس لكي يظهر التاريخ علي هيئة شهر - يوم - سنة

كود :
Imports System.Globalization

Public Class DateTimeWrapper

   Private _year As Integer
   Private _month As Integer
   Private _day As Integer

   Public Sub New(value As DateTime)
       Me.New(value.Month, value.Day, value.Year)
   End Sub

   Public Sub New(month As Integer, day As Integer, year As Integer)
       _day = day
       _month = month
       _year = year
   End Sub

   Public ReadOnly Property Year() As Integer
       Get
           Return _year
       End Get
   End Property

   Public ReadOnly Property Month() As Integer
       Get
           Return _month
       End Get
   End Property

   Public ReadOnly Property Day() As Integer
       Get
           Return _day
       End Get
   End Property

   Public Shared Widening Operator CType(value As DateTime) As DateTimeWrapper
       Return New DateTimeWrapper(value)
   End Operator

   Public Overrides Function ToString() As String
       Return String.Concat(New String() {Me.Month.ToString(CultureInfo.CurrentCulture), "/", Me.Day.ToString(CultureInfo.CurrentCulture), "/", Me.Year.ToString(CultureInfo.CurrentCulture)})
   End Function

End Class

وهذه صورة أخري للكلاس لكي يظهر التاريخ علي هيئة يوم - شهر - سنة


كود :
Imports System.Globalization

Public Class DateTimeWrapper

   Private _year As Integer
   Private _month As Integer
   Private _day As Integer

   Public Sub New(value As DateTime)
       Me.New(value.Day, value.Month, value.Year)
   End Sub

   Public Sub New(day As Integer, month As Integer, year As Integer)
       _day = day
       _month = month
       _year = year
   End Sub

   Public ReadOnly Property Year() As Integer
       Get
           Return _year
       End Get
   End Property

   Public ReadOnly Property Month() As Integer
       Get
           Return _month
       End Get
   End Property

   Public ReadOnly Property Day() As Integer
       Get
           Return _day
       End Get
   End Property

   Public Shared Widening Operator CType(value As DateTime) As DateTimeWrapper
       Return New DateTimeWrapper(value)
   End Operator

   Public Overrides Function ToString() As String
       Return String.Concat(New String() {Me.Day.ToString(CultureInfo.CurrentCulture), "/", Me.Month.ToString(CultureInfo.CurrentCulture), "/", Me.Year.ToString(CultureInfo.CurrentCulture)})
   End Function

End Class


الكود النالي يوضح كيفية استخدام الكلاس

كود :
       Dim currentDateTime As DateTime = DateTime.Now
       Dim wrapper As New DateTimeWrapper(currentDateTime)
       Dim wrapperString As String = wrapper.ToString
       Me.Text = wrapperString


يمكنك تغيير اسم الكلاس لأي اسم اخر يناسبك
الرد }}}}
تم الشكر بواسطة: طالب 22 , طالب 22 , ابو ابراهيم
#4
ليه التعقيد في البرمجة... اختر من خصائص الديت تايمر بيكر التنسيق اللي تبيه
الرد }}}}
تم الشكر بواسطة:
#5
مش موضوع تعقيد في البرمجة يا أخي الفاضل

لأنه لو الموضوع تعقيد يبقي مايكروسوفت لن تكتب كلاسا و احدا جديدا و هنا تتحول كل الكلاسات الموجودة في الدوت نت الي لا شئ و تصبح بلا اهمية عموما يوما ما ستدرك أن الهدف هو اليسر و ليس العسر
الرد }}}}
تم الشكر بواسطة: طالب 22
#6
(05-08-16, 01:50 AM)silverlight كتب : مش موضوع تعقيد في البرمجة يا أخي الفاضل

لأنه لو الموضوع تعقيد يبقي مايكروسوفت لن تكتب كلاسا و احدا جديدا و هنا تتحول كل الكلاسات الموجودة في الدوت نت الي لا شئ و تصبح بلا اهمية عموما يوما ما ستدرك أن الهدف هو اليسر و ليس العسر

بالنسبة لكم شي جميل وسهل ويسير وابداع وتتعلمون افكار جميلة وافاق كثيرة بالكلاسات Shy Shy


وبالنسبة لنا كمبتدئين تجي لنا الصدمه Big Grin Big Grin  وممكن نكره البرمجه Angel Angel

ولكن عند تحليل الكود وتعلمه وتفكيكه وفهمه يتغير مسارنا للافضل Rolleyes
جزاك الله خير على مشاركاتك الجميلة
الرد }}}}
تم الشكر بواسطة:
#7
اخوانى الاعزاء ... شكرا جزيلا و اتمنى مزيد من النقاش حتى نستفيد جميعا ...
اخى الافاضل silverlight
اكون شاكر و ممتن لك لو ارفقت مثالا (كود يرفق) عن الكﻻس اللى شرحته لان فيه مشكلة معى كلما حاولت بالكود
الرد }}}}
تم الشكر بواسطة:
#8
في المرفقات ستجد مثالا للكلاس بنسخة الفيجوال استوديو 2015
عموما هناك أساليب كثيرة لحل المشكلة
و بشكل عام لو أن كتابة الكلاس قد تسبب إزعاجا للبعض فيمكن الاستغناء عن الكلاس تماما و استخدام الدالة التالية كبديل للكلاس و الدالة سوف تؤدي نفس الهدف المطلوب

كود :
  Private Function ConvertDateTimetoString(value As DateTime) As String
       Dim result As String = CType(Nothing, String)
       If value <> Nothing Then
           result = String.Concat(New String() {value.Month.ToString(System.Globalization.CultureInfo.CurrentCulture), "/", value.Day.ToString(System.Globalization.CultureInfo.CurrentCulture), "/", value.Year.ToString(System.Globalization.CultureInfo.CurrentCulture)})
       End If
       Return result
   End Function


كيف تستخدم الدالة
تمرر لها الوقت و التاريخ و هي ستعطيك الناتج علي شكل String في صورة شهر - يوم - سنة

كود :
       Dim currentDateTime As DateTime = DateTime.Now
       Me.Text = ConvertDateTimetoString(currentDateTime)
ويمكن تعديل الدالة أعلاه و عمل Format لكيفية ظهور الأرقام


كود :
  Private Function ConvertDateTimetoString(value As DateTime) As String
       Dim result As String = CType(Nothing, String)
       If value <> Nothing AndAlso value.GetType() Is GetType(DateTime) Then
           Dim dayMonthformat As String = "00"
           Dim yearformat As String = "0000"
           result = String.Concat(New String() {value.Month.ToString(dayMonthformat, System.Globalization.CultureInfo.CurrentCulture), "/", value.Day.ToString(dayMonthformat, System.Globalization.CultureInfo.CurrentCulture), "/", value.Year.ToString(yearformat, System.Globalization.CultureInfo.CurrentCulture)})
       End If
       Return result
   End Function


الملفات المرفقة
.rar   Test_DateTime.rar (الحجم : 58.29 ك ب / التحميلات : 22)
الرد }}}}
تم الشكر بواسطة: ابو ابراهيم


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مشكلة عند التعامل مع DevExpress آمل أن أجد لها حلًا أحمد إبراهيم سعد 10 211 23-09-17, 11:47 PM
آخر رد: أحمد إبراهيم سعد
  [VB.NET] مشكلة اثناء تنفيذ المشروع ظاهر علي 2 62 23-09-17, 10:56 AM
آخر رد: aliday03
  [VB.NET] مشكلة معايا فى الTEXTBOX MOSTAFA.KAMEL 12 166 22-09-17, 10:45 PM
آخر رد: MOSTAFA.KAMEL
  مشكلة في حفظ الصورة Fantastico 3 91 22-09-17, 04:46 PM
آخر رد: Fantastico
  مشكلة الفورم الشفاف محمود صالح 5 193 22-09-17, 12:47 AM
آخر رد: Fantastico
  [سؤال] ما حل مشكلة تعارض Task مع Sleep؟ السندبااد 6 137 20-09-17, 02:49 PM
آخر رد: السندبااد
  مشكلة في قراءة قيمة من الريجستري سعود الشامان 12 191 19-09-17, 07:59 PM
آخر رد: سعود الشامان
  [سؤال] مشكلة في حذف و تعديل بيانات DataGridView mohammed alnour 4 139 16-09-17, 01:01 AM
آخر رد: mohammed alnour
  [VB.NET] مشكلة في تعديل المشروع مصمم هاوي 9 524 15-09-17, 06:54 PM
آخر رد: مصمم هاوي
  اضافة عدد الايام + التاريخ الاول = التاريخ الثانى nabil.1710 3 102 15-09-17, 05:10 AM
آخر رد: طـلال

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم