View Full Version : یک مشکل مهم دار
  
ebrahimv
پنج شنبه 17 اسفند 1385, 11:28 صبح
چکونه برنامه ای بنویسم که نشان دهد چند روز از عمر فرد می گزرد
__H2__
پنج شنبه 17 اسفند 1385, 14:12 عصر
سلام
مثل چیزهای دیگر، تاریخ فعلی را منهای تاریخ تولد کن.
مثلاَ کد VB6 (درپیت)  آن چیزی شبیه این میشود (VB8 هم خواستید در خدمت هستیم)
 
Dim dNow As Date, dOld As Date, days As Long
dNow = Now()
dOld = #1/1/1990#
 
days = CLng(dNow - dOld)
bashiry
پنج شنبه 17 اسفند 1385, 22:06 عصر
این تابع فکر نمی کنم دقیق تاریخ رو بده
چون سالهای کبیسه و ... رو مد نظر نمیگیره - باید به صورت دستی دو تاریخ رو از هم کم کنی.
someCoder
جمعه 18 اسفند 1385, 01:12 صبح
یک مشکل مهم داراین یعنی چی؟
saeed_rezaei
جمعه 18 اسفند 1385, 01:26 صبح
بله به صورت دستی باید کم کنید تا برای کبیسه هم مشکلی پیش نیاد. 
Private Function calculate_dif(ByVal m2 As String, ByVal d2 As String, ByVal m1 As   String, ByVal d1 As String) As Integer
   Dim c As Integer
   If m2 > 6 Then
        c = ((Int(m2) - 1) * 30) + 6 + Int(d2)
     Else
        c = ((Int(m2) - 1) * 31) + Int(d2)
  End If
  Return (c)
End Function
 
 
Private Sub btn_calculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_calculate.Click
 
     Dim dif1, dif2, dif3, kabis, life, dif_Y As Integer
 
     dif1 = calculate_dif(MONTH2, DAY2, 1, 1)
     dif2 = 365 - calculate_dif(MONTH1, DAY1, 1, 1)
     dif_Y = (Int(YEAR2) - (Int(YEAR1) + 1))
     dif3 = dif_Y * 365
     If chk_kabise.Checked = True Then
          dif2 += 1
     End If
     kabis = dif_Y / 4
     life = dif1 + dif2 + dif3 + kabis
     txt_result.Text = life
End Sub
با کد بالا امتحان کنید. فقط این موارد رو مد نظر داشته باشید
YEAR1 / MONTH1 / DAY1
تاریخ بالا، تاریخ تولد هستش و
YEAR2 / MONTH2 / DAY2
تاریخی جاری. 
یه CHECK BOX هم تعریف شده که اگه سال تولد فرد، سال کبیسه بوده باید تیک زد.
من حضور ذهن نداشتم که سال چندوقت یه بار  کبیسه می شه اما توی کد چهار سال در نظر گرفتم. 
فکر نمی کنم مورد مبهم دیگه ای باشه.
senator_aka
جمعه 18 اسفند 1385, 10:52 صبح
سلام دوست عزیز.
 
عنوان تاپیک شما مشکل دارد.
 
به نظر خیلی از دوستان در عنوان باید مشکلی که داری را بیان کنی نه اینکه از کلماتی مثل کمک و مشکل و ... استفاده کنی.
 
من خودم نیز تا چند وقت قبل همین مشکل شما رو داشتم و تاپیک من پاک شد.
 
برای اینکه دیگه با این مشکل ها سر و کار نداشته باشی در آینده از این کلمات استفاده نکن.
__H2__
دوشنبه 21 اسفند 1385, 15:13 عصر
این تابع فکر نمی کنم دقیق تاریخ رو بده
 
چون سالهای کبیسه و ... رو مد نظر نمیگیره - باید به صورت دستی دو تاریخ رو از هم کم کنی.
 
سلام
آن کد چند خطی به ظاهر درپیت، کاملاَ جواب دقیق را میدهد و به هیچ وجه نیاز به کارهای دیگر نیست.
seeker
دوشنبه 21 اسفند 1385, 17:21 عصر
این تابع فکر نمی کنم دقیق تاریخ رو بده
 
چون سالهای کبیسه و ... رو مد نظر نمیگیره - باید به صورت دستی دو تاریخ رو از هم کم کنی.
کاملا دقیق
چون خودش سالهای کبیسه رو میشناسه ومحاسبه میکنه
میتونین آزمایش کنین
دوتا تاریخ با اختلاف 5 سال رو از هم کم کنین بعد تقسیم به 5 کنین اگه دقیقا 365 داد یعنی غلطه و کبیسه رو حساب نمیکنه اما اگه جوابی غیر از این داد یعنی درسته و کبیسه ها رو هم حساب میکنه
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.