تقييم الموضوع :
  • 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 ك ب / التحميلات : 17)
الرد }}}}
تم الشكر بواسطة: ابو ابراهيم


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مشكلة تفعيل ظهور checkbox في الفورم عامر الجبوري 4 54 21-05-17, 02:22 PM
آخر رد: alma2
  حل مشكلة " البرامج لا تعمل" عبدالرحمن المكاوي 4 86 20-05-17, 12:43 AM
آخر رد: عبدالرحمن المكاوي
  مشكلة في كود البحث فرجاء المساعدة khaled12345 5 79 19-05-17, 03:50 PM
آخر رد: khaled12345
  [VB.NET] حل مشكلة الارقام في الاداة DataGridview أبو نقطة 2 46 19-05-17, 12:10 PM
آخر رد: alma2
  منع تعديل التاريخ والوقت ريم النهاري 7 145 18-05-17, 09:28 AM
آخر رد: ريم النهاري
  [SQL] التاريخ في البرنامج العواد الصغير 7 184 14-05-17, 06:17 PM
آخر رد: العواد الصغير
  مشكلة في كود جملة ال insert khaled12345 2 60 14-05-17, 10:20 AM
آخر رد: khaled12345
  [VB.NET] مشكلة بسيطة في برنامج بسيط يعتمد على( Multi-Threading) أبو نقطة 5 134 13-05-17, 07:41 AM
آخر رد: أبو نقطة
  [سؤال] ممكن طريقة اضافة سنوات في التاريخ Abdulaziz Hazazi 2 88 06-05-17, 09:59 PM
آخر رد: أسامة السالمي
  مشكلة فى المشروع MOSTAFA.KAMEL 9 213 06-05-17, 03:46 AM
آخر رد: zinom

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


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