تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الإجازة السنوية
#8
الأخ عبد الله

مبدئيا انا لاحظت انك تستخدم الفيجوال استوديو 2010 ,  و انا عند نسخة 2015
لذلك ربما الكود في المرفقات لا يفتح عندك لأني قمت بتعديل الكود الأصلي باستخدام نسخة 2015

عموم و كنوع من الحل لك حتي تستطيع كتابة الكود بنسخة 2010

افتح مشروع
اولا : تضيف للفورم الأتي
1- DateTimePicker1 و سيكون الهدف منها تحديد تاريخ بداية الأجازة
2- DateTimePicker2 و سيكون الهدف منها تحديد تاريخ نهاية الأجازة
3- TextBox1 و الهدف منه عرض اجمالي أيام الأجازة
4- ListBox1 لعرض الاجازات الوطنية
5- Button1 سنستخدمه لحساب عدد ايام ايام الأجازة الفعلية و إظهارها في التكست بوكس

و اكتب الكود في الفورم بالشكل التالي


PHP كود :
Public Class Form1
    Private Sub Form1_Load
(sender As ObjectAs EventArgsHandles MyBase.Load
        
' أعتقد أنه لا يوجد فائدة لإظهار ايام الاجازات الوطنية لكن هذا للتوضيح فقك في كيفية عرضها داخل الليست بوكس
        For Each s As String In GenerateNationalDateStrings()
            ListBox1.Items.Add(s)
        Next
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim starDate As DateTime = DateTimePicker1.Value
        Dim endDate As DateTime = DateTimePicker2.Value
        Dim annualLeave As Integer = 0
        If endDate > starDate Then
            annualLeave += GetAnnualLevaeDays(starDate, endDate)
            Me.TextBox1.Text = annualLeave
        Else
            MessageBox.Show("تاريخ نهاية الأجازة يجب أن يكون أكبر من تاريخ بداية الأجازة", "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Me.TextBox1.Text = ""
        End If
    End Sub

    Private Function GetAnnualLevaeDays(startdate As DateTime, endDate As DateTime) As Integer
        Return GetAnnualLevaeDays(GenerateAnnualDateStrings(startdate, endDate), GenerateNationalDateStrings())
    End Function
    Private Function GetAnnualLevaeDays(annualDates As String(), nationalDates As String()) As Integer
        Return (annualDates.Intersect(nationalDates).Count) + (annualDates.Count)
    End Function

    Private Function GenerateNationalDateStrings(days As String(), months As String()) As String()
        Dim dates As List(Of String) = New List(Of String)()
        Dim total As Integer = days.Length - 1
        For i As Integer = 0 To total
            Dim d As String = days(i)
            Dim m As String = months(i)
            Dim y As String = DateTime.Now.Year.ToString()
            Dim dt As String = String.Concat(New String() {d.ToString(Globalization.CultureInfo.CurrentCulture), "/", m.ToString(Globalization.CultureInfo.CurrentCulture), "/", y.ToString(Globalization.CultureInfo.CurrentCulture)})
            dates.Add(dt)
        Next
        Return dates.ToArray
    End Function

    Private Function GenerateNationalDateStrings() As String()
        Return GenerateNationalDateStrings({"22", "26", "14", "30"}, {"05", "09", "10", "11"})
    End Function

    Private Function GenerateAnnualDateStrings(startdate As DateTime, endDate As DateTime) As String()
        Dim dates As New List(Of String)()
        While startdate <= endDate
            Dim s As String = CType(Convert.ChangeType(startdate.ToShortDateString, GetType(String)), String)
            dates.Add(s)
            startdate = startdate.AddDays(1)
        End While
        Return dates.ToArray
    End Function

End Class 


الملفات المرفقة
.rar   Mul_2_Date.rar (الحجم : 62.25 ك ب / التحميلات : 109)
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
الإجازة السنوية - بواسطة abdulla2 - 17-09-16, 06:01 PM
RE: الإجازة السنوية - بواسطة silverlight - 17-09-16, 07:07 PM
RE: الإجازة السنوية - بواسطة ابو ليلى - 20-09-16, 04:19 AM
RE: الإجازة السنوية - بواسطة silverlight - 21-09-16, 03:35 PM
RE: الإجازة السنوية - بواسطة abdulla2 - 21-09-16, 11:59 PM
RE: الإجازة السنوية - بواسطة silverlight - 22-09-16, 12:34 AM
RE: الإجازة السنوية - بواسطة abdulla2 - 24-09-16, 10:22 AM
RE: الإجازة السنوية - بواسطة silverlight - 24-09-16, 07:25 PM
RE: الإجازة السنوية - بواسطة abdulla2 - 25-09-16, 06:51 PM
RE: الإجازة السنوية - بواسطة silverlight - 26-09-16, 12:52 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] كود نقل السجلات السنوية سمير الجبالي 3 2,423 12-05-18, 12:56 AM
آخر رد: عبدالله الدوسري

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


يقوم بقرائة الموضوع: