الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحويل التاريخ من/الى هجرى وميلادى

بدأه finestraco في 30 ديسمبر 2010 · 0 رد · 1,800 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1

ماهو الخطأ فى هذا الكود

Imports System.Web

Imports System.Diagnostics

Imports System.Globalization

Imports System.Data

Imports System.Collections

Namespace Dates_conv

Public Class Dates

Private cur As HttpContext

Private Const startGreg As Integer = 1900

Private Const endGreg As Integer = 2100

Private allFormats As String() = {"yyyy/MM/dd", "yyyy/M/d", "dd/MM/yyyy", "d/M/yyyy", "dd/M/yyyy", "d/MM/yyyy", _

"yyyy-MM-dd", "yyyy-M-d", "dd-MM-yyyy", "d-M-yyyy", "dd-M-yyyy", "d-MM-yyyy", _

"yyyy MM dd", "yyyy M d", "dd MM yyyy", "d M yyyy", "dd M yyyy", "d MM yyyy"}

Private arCul As CultureInfo

Private enCul As CultureInfo

Private h As HijriCalendar

Private g As GregorianCalendar

Public Sub New()

cur = HttpContext.Current

arCul = New CultureInfo("ar-SA")

enCul = New CultureInfo("en-US")

h = New HijriCalendar()

g = New GregorianCalendar(GregorianCalendarTypes.USEnglish)

arCul.DateTimeFormat.Calendar = h

End Sub

''' <summary>

''' Check if string is hijri date and then return true

''' </summary>

''' <param name="hijri"></param>

''' <returns></returns>

Public Function IsHijri(ByVal hijri As String) As Boolean

If hijri.Length <= 0 Then

cur.Trace.Warn("IsHijri Error: Date String is Empty")

Return False

End If

Try

Dim tempDate As DateTime = DateTime.ParseExact(hijri, allFormats, arCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces)

If tempDate.Year >= startGreg AndAlso tempDate.Year <= endGreg Then

Return True

Else

Return False

End If

Catch ex As Exception

cur.Trace.Warn("IsHijri Error :" & hijri.ToString() & vbLf & ex.Message)

Return False

End Try

End Function

''' <summary>

''' Check if string is Gregorian date and then return true

''' </summary>

''' <param name="greg"></param>

''' <returns></returns>

Public Function IsGreg(ByVal greg As String) As Boolean

If greg.Length <= 0 Then

cur.Trace.Warn("IsGreg :Date String is Empty")

Return False

End If

Try

Dim tempDate As DateTime = DateTime.ParseExact(greg, allFormats, enCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces)

If tempDate.Year >= startGreg AndAlso tempDate.Year <= endGreg Then

Return True

Else

Return False

End If

Catch ex As Exception

cur.Trace.Warn("IsGreg Error :" & greg.ToString() & vbLf & ex.Message)

Return False

End Try

End Function

''' <summary>

''' Return Formatted Hijri date string

''' </summary>

''' <param name="date"></param>

''' <param name="format"></param>

''' <returns></returns>

Public Function FormatHijri(ByVal [date] As String, ByVal format As String) As String

If [date].Length <= 0 Then

cur.Trace.Warn("Format :Date String is Empty")

Return ""

End If

Try

Dim tempDate As DateTime = DateTime.ParseExact([date], allFormats, arCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces)

Return tempDate.ToString(format, arCul.DateTimeFormat)

Catch ex As Exception

cur.Trace.Warn("Date :" & vbLf & ex.Message)

Return ""

End Try

End Function

''' <summary>

''' Returned Formatted Gregorian date string

''' </summary>

''' <param name="date"></param>

''' <param name="format"></param>

''' <returns></returns>

Public Function FormatGreg(ByVal [date] As String, ByVal format As String) As String

If [date].Length <= 0 Then

cur.Trace.Warn("Format :Date String is Empty")

Return ""

End If

Try

Dim tempDate As DateTime = DateTime.ParseExact([date], allFormats, enCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces)

Return tempDate.ToString(format, enCul.DateTimeFormat)

Catch ex As Exception

cur.Trace.Warn("Date :" & vbLf & ex.Message)

Return ""

End Try

End Function

''' <summary>

''' Return Today Gregorian date and return it in yyyy/MM/dd format

''' </summary>

''' <returns></returns>

Public Function GDateNow() As String

Try

Return DateTime.Now.ToString("yyyy/MM/dd", enCul.DateTimeFormat)

Catch ex As Exception

cur.Trace.Warn("GDateNow :" & vbLf & ex.Message)

Return ""

End Try

End Function

''' <summary>

''' Return formatted today Gregorian date based on your format

''' </summary>

''' <param name="format"></param>

''' <returns></returns>

Public Function GDateNow(ByVal format As String) As String

Try

Return DateTime.Now.ToString(format, enCul.DateTimeFormat)

Catch ex As Exception

cur.Trace.Warn("GDateNow :" & vbLf & ex.Message)

Return ""

End Try

End Function

''' <summary>

''' Return Today Hijri date and return it in yyyy/MM/dd format

''' </summary>

''' <returns></returns>

Public Function HDateNow() As String

Try

Return DateTime.Now.ToString("yyyy/MM/dd", arCul.DateTimeFormat)

Catch ex As Exception

cur.Trace.Warn("HDateNow :" & vbLf & ex.Message)

Return ""

End Try

End Function

''' <summary>

''' Return formatted today hijri date based on your format

''' </summary>

''' <param name="format"></param>

''' <returns></returns>

Public Function HDateNow(ByVal format As String) As String

Try

Return DateTime.Now.ToString(format, arCul.DateTimeFormat)

Catch ex As Exception

cur.Trace.Warn("HDateNow :" & vbLf & ex.Message)

Return ""

End Try

End Function

''' <summary>

''' Convert Hijri Date to it's equivalent Gregorian Date

''' </summary>

''' <param name="hijri"></param>

''' <returns></returns>

Public Function HijriToGreg(ByVal hijri As String) As String

If hijri.Length <= 0 Then

cur.Trace.Warn("HijriToGreg :Date String is Empty")

Return ""

End If

Try

Dim tempDate As DateTime = DateTime.ParseExact(hijri, allFormats, arCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces)

Return tempDate.ToString("yyyy/MM/dd", enCul.DateTimeFormat)

Catch ex As Exception

cur.Trace.Warn("HijriToGreg :" & hijri.ToString() & vbLf & ex.Message)

Return ""

End Try

End Function

''' <summary>

''' Convert Hijri Date to it's equivalent Gregorian Date and return it in specified format

''' </summary>

''' <param name="hijri"></param>

''' <param name="format"></param>

''' <returns></returns>

Public Function HijriToGreg(ByVal hijri As String, ByVal format As String) As String

If hijri.Length <= 0 Then

cur.Trace.Warn("HijriToGreg :Date String is Empty")

Return ""

End If

Try

Dim tempDate As DateTime = DateTime.ParseExact(hijri, allFormats, arCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces)

Return tempDate.ToString(format, enCul.DateTimeFormat)

Catch ex As Exception

cur.Trace.Warn("HijriToGreg :" & hijri.ToString() & vbLf & ex.Message)

Return ""

End Try

End Function

''' <summary>

''' Convert Gregoian Date to it's equivalent Hijir Date

''' </summary>

''' <param name="greg"></param>

''' <returns></returns>

Public Function GregToHijri(ByVal greg As String) As String

If greg.Length <= 0 Then

cur.Trace.Warn("GregToHijri :Date String is Empty")

Return ""

End If

Try

Dim tempDate As DateTime = DateTime.ParseExact(greg, allFormats, enCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces)

Return tempDate.ToString("yyyy/MM/dd", arCul.DateTimeFormat)

Catch ex As Exception

cur.Trace.Warn("GregToHijri :" & greg.ToString() & vbLf & ex.Message)

Return ""

End Try

End Function

''' <summary>

''' Convert Hijri Date to it's equivalent Gregorian Date and return it in specified format

''' </summary>

''' <param name="greg"></param>

''' <param name="format"></param>

''' <returns></returns>

Public Function GregToHijri(ByVal greg As String, ByVal format As String) As String

If greg.Length <= 0 Then

cur.Trace.Warn("GregToHijri :Date String is Empty")

Return ""

End If

Try

Dim tempDate As DateTime = DateTime.ParseExact(greg, allFormats, enCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces)

Return tempDate.ToString(format, arCul.DateTimeFormat)

Catch ex As Exception

cur.Trace.Warn("GregToHijri :" & greg.ToString() & vbLf & ex.Message)

Return ""

End Try

End Function

''' <summary>

''' Return Gregrian Date Time as digit stamp

''' </summary>

''' <returns></returns>

Public Function GTimeStamp() As String

Return GDateNow("yyyyMMddHHmmss")

End Function

''' <summary>

''' Return Hijri Date Time as digit stamp

''' </summary>

''' <returns></returns>

Public Function HTimeStamp() As String

Return HDateNow("yyyyMMddHHmmss")

End Function

''' <summary>

''' Compare if the Hijri date between other financial year and return True if within , False in not within

''' </summary>

''' <param name="dt">Data Table contain start date and end date ,,start date is the first column in table , end date is the second column in table</param>

''' <param name="fromDate"></param>

''' <param name="endDate"></param>

''' <returns></returns>

''' <summary>

''' Compare two instaces of string date and return indication of thier values

''' </summary>

''' <param name="d1"></param>

''' <param name="d2"></param>

''' <returns>positive d1 is greater than d2,negative d1 is smaller than d2, 0 both are equal</returns>

Public Function Compare(ByVal d1 As String, ByVal d2 As String) As Integer

Try

Dim date1 As DateTime = DateTime.ParseExact(d1, allFormats, arCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces)

Dim date2 As DateTime = DateTime.ParseExact(d2, allFormats, arCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces)

Return DateTime.Compare(date1, date2)

Catch ex As Exception

cur.Trace.Warn("Compare :" & vbLf & ex.Message)

Return -1

End Try

End Function

End Class

End Namespace

مواضيع مشابهة