PDA

View Full Version : سوال: مقايسه بين دو تاريخ



azn1387
چهارشنبه 05 فروردین 1388, 08:02 صبح
:گیج:سلام ميخواستم ببينم چطوري مي تونم دو تاريخ رو با هم مقايسه كنم؟

Qermezkon
چهارشنبه 05 فروردین 1388, 09:30 صبح
به نظر من بهترين راه اينه كه از توابع VB.NET استفاده كني .
هر دو تاريخ رو به ميلادي تبديل كن بعد با استفاده از متدهاي تعريف شده شي DateTime دو تاريخ رو از هم كم كن.
مي توني از متد Subtract براي اين كار استفاده كني خروجي كه بهت مي ده از نوع TimeSpan هست.

pooshiran
چهارشنبه 05 فروردین 1388, 11:56 صبح
اگ تاریخهای شما فارسی است می توانید از dll زیر استفاده کنید وتاریخها را از هم کنید
http://barnamenevis.org/forum/showthread.php?t=56973&page=3

anooshiran
چهارشنبه 05 فروردین 1388, 13:04 عصر
با سلام

دوست عزيز يكي از راه هاي مقايسه دوتاريخ آن است كه ايتدا دو تاريخ را به string تبديل كني. سپس علامت / را از تاريخها برداريو در نهايت آنها را تبديل به عدد كني
بدين صورت دو عدد خواهي داشت كه مقايسه آنها بسيار ساده تر است





Dim date1 As String = "1387/12/12"
Dim date2 As String = "1387/05/20"
date1 = CDbl(Replace(date1, "/", ""))
date2 = CDbl(Replace(date2, "/", ""))

mina.net
چهارشنبه 05 فروردین 1388, 15:32 عصر
سلام دوستان ، سال نو مبارک

راهی که استاد گفنتد ممکنه گاهی مشکل ایجاد کنه با عرض معذرت البته
فرض کنید دو تا تاریخ داریم 05/01/1388 ، 5/1/1388 خوب این دو تا تاریخ با هم برابر هستن ولی با این روش که استاد گفتن که البته درست هم گفتن تاریخ اولی از تاریخ دومی بزرگتر است برای رفع این مشکل از کد زیر برای اصلاح تاریخ دوم استفاده کنید. کد زیر تاریخ 5/1/1388 و 05/01/1388 هر دو رو به 13880105 تبدیل می کنه اون وقت هر دو تاریخ برابر خواهند بود.
خدای ایران زمین نگهدارتان.






Function DATE_adad(ByVal DATE1_P As String)

Dim YYYY As Integer
Dim STRY As String = ""
Dim MM As Integer
Dim STRM As String = ""
Dim DD As Integer
Dim STRD As String = ""
Dim STRP1 As String
Dim STR_MAIN As String = ""
Dim DATE1 As Date
If DATE1_P = "" Then
Return DATE_PP
Exit Function
End If

DATE1 = CType(DATE1_P, Date)

STRP1 = CType(DATE1, String)

Dim I As Integer
Dim INT1 As Integer = STRP1.Length
Dim STR As String = ""
For I = 1 To INT1
If STR = "" Then
STR_MAIN = Mid(STRP1, I, 1)
If STR_MAIN <> "/" Then STRM = STRM & STR_MAIN
If STR_MAIN = "/" Then STR = STR & STR_MAIN
ElseIf STR = "/" Then
STR_MAIN = Mid(STRP1, I, 1)
If STR_MAIN <> "/" Then STRD = STRD & STR_MAIN
If STR_MAIN = "/" Then STR = STR & STR_MAIN
ElseIf STR = "//" Then
STR_MAIN = Mid(STRP1, I, 1)
If STR_MAIN <> "/" Then STRY = STRY & STR_MAIN
If STR_MAIN = "/" Then STR = STR & STR_MAIN
End If
Next
YYYY = CType(STRY, Integer)
MM = CType(STRM, Integer)
DD = CType(STRD, Integer)

If YYYY < 100 Then STRY = "13" & YYYY
If MM < 10 Then STRM = "0" & MM
If DD < 10 Then STRD = "0" & DD
DATE_INT = STRY & STRM & STRD

Return DATE_INT