نمایش نتایج 1 تا 22 از 22

نام تاپیک: بدست آوردن روزهای مابین دو تاریخ شمسی ( تفاضل روزهای مابین دو تاریخ شمسی )

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    2,010

    Cool بدست آوردن روزهای مابین دو تاریخ شمسی ( فاصله مابین دو تاریخ شمسی بر حسب روز )

    اینم واسه کسانی که می خوان روزهای مابین دو تا تاریخ شمسی رو محاسبه کنند ، برای یه پروژه نیاز شد که این تابع رو (بهمراه یه تابع کمکی) بنویسم بد ندیدم اینجا بزارمشون تا دیگران هم استفاده کنند البته سالهای کبیسه رو محاسبه نمی کنه و روز پایانی سال از ماه دوازدهم رو کم نمی کنه



    Function GetDiffDays(ByVal FirstDate As String, ByVal SecondDate As String) As Integer
    Dim FirstDay, FirstMonth, FirstYear, SecondDay, SecondMonth, SecondYear As String
    ' FirstDate = "1391/02/05" : SecondDate = "1391/03/02"
    Dim FD, FM, FY, SD, SM, SY, ExpDays As Integer
    ' Split First Date As FirstDay, FirstMonth and FirstYear As String
    FirstDay = Split(FirstDate, "/")(2)
    FirstMonth = Split(FirstDate, "/")(1)
    FirstYear = Split(FirstDate, "/")(0)
    ' Integer of Day of First Date
    FD = CInt(If(Left(FirstDay, 1) = "0", Right(FirstDay, 1), FirstDay))
    ' Integer of Month of First Date
    FM = CInt(If(Left(FirstMonth, 1) = "0", Right(FirstMonth, 1), FirstMonth))
    ' Integer of Year of First Date
    FY = CInt(FirstYear)
    ' Split Second Date As SecondDay, SecondMonth and SecondYear As String
    SecondDay = Split(SecondDate, "/")(2)
    SecondMonth = Split(SecondDate, "/")(1)
    SecondYear = Split(SecondDate, "/")(0)
    ' Integer of Day of Second Date
    SD = CInt(If(Left(SecondDay, 1) = "0", Right(SecondDay, 1), SecondDay))
    ' Integer of Month of Second Date
    SM = CInt(If(Left(SecondMonth, 1) = "0", Right(SecondMonth, 1), SecondMonth))
    ' Integer of Year of Second Date
    SY = CInt(SecondYear)
    ExpDays = If(SY < FY, 0, (SY - FY) * 365)
    ExpDays += If(SM > FM, MonthDays(SM) - MonthDays(FM), 0)
    ' ExpDays -= If(SM < FM, MonthDays(FM - SM), 0)'
    ExpDays += If(SD > FD, SD - FD, 0)
    ' ExpDays -= If(SD < FD, FD - SD, 0)'
    Return ExpDays
    End Function

    Function MonthDays(ByVal MonthInt As Integer) As Integer
    Dim DiffDays As Integer = 0
    DiffDays = If(MonthInt <= 7, MonthInt * 30, ((MonthInt - 7) * 31) + 210)
    Return DiffDays
    End Function


    تابع MonthDays اشتباها 6 ماه اول رو 30 روزه حساب می کرد با این جایگزین می شه:

       Function MonthDays(ByVal MonthInt As Integer) As Integer
    Dim DiffDays As Integer = 0
    DiffDays = If(MonthInt <= 7, ((MonthInt - 7) * 31) + 210, MonthInt * 30)
    Return DiffDays
    End Function
    آخرین ویرایش به وسیله ROSTAM2 : شنبه 30 اردیبهشت 1391 در 10:40 صبح

تاپیک های مشابه

  1. پاسخ: 3
    آخرین پست: پنج شنبه 26 خرداد 1390, 12:19 عصر
  2. سوال: بدست آوردن تاریخ سیستم(شمسی)
    نوشته شده توسط pedramfj در بخش C#‎‎
    پاسخ: 3
    آخرین پست: شنبه 30 مرداد 1389, 15:30 عصر
  3. پاسخ: 17
    آخرین پست: دوشنبه 10 اسفند 1388, 22:09 عصر
  4. بدست آوردن تعداد روزهای بین دو تاریخ شمسی در SQL
    نوشته شده توسط odiseh در بخش SQL Server
    پاسخ: 4
    آخرین پست: سه شنبه 17 بهمن 1385, 17:26 عصر
  5. بدست آوردن تعداد روزهای بین دو تاریخ
    نوشته شده توسط sarina در بخش VB.NET
    پاسخ: 1
    آخرین پست: شنبه 29 آذر 1382, 00:22 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •