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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] مشكلة في كتابة عربي مع انجليزي في نص واحد ali.alfoly 1 50 منذ 8 ساعة مضت
آخر رد: amgad525
  مشكلة كتابة نص في text box kofa 3 38 08-12-16, 09:24 PM
آخر رد: kofa
  [VB.NET] اضافة التاريخ في الطباعة في الريبورت فيور hglogtd 8 92 08-12-16, 08:35 PM
آخر رد: ابراهيم النعيمي
  تثبيت التاريخ علي الفورم ddemed 4 107 08-12-16, 08:15 PM
آخر رد: ddemed
  [VB.NET] مشكلة فى كود بيحمل ملف من على النت MOSTAFA.KAMEL 8 198 08-12-16, 05:51 PM
آخر رد: CLARO
  حل مشكلة الكود الاتي - سهل- CLARO 3 94 02-12-16, 04:06 PM
آخر رد: ali.alfoly
  كيف يتم حل مشكلة ظهور رسالة عند الضغط علي هيد داتا جريد فيو السيد الجوهري 4 65 30-11-16, 10:08 PM
آخر رد: السيد الجوهري
  [VB.NET] مشكلة عند عمل تحديث للبيانات Asmaa adel 3 89 27-11-16, 03:56 PM
آخر رد: Adrees
Rainbow [VB.NET] مشكلة طابعة الباركود محمد اسماعيل 3 271 27-11-16, 10:30 AM
آخر رد: adel27
  [SQL] مشكلة عند الاتصال بالسيكوال سيرفر تظهر الرسالة التالية Asmaa adel 8 194 21-11-16, 11:58 PM
آخر رد: Asmaa adel

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


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