PDA

View Full Version : یک مشکل مهم دار



ebrahimv
پنج شنبه 17 اسفند 1385, 10:28 صبح
چکونه برنامه ای بنویسم که نشان دهد چند روز از عمر فرد می گزرد

__H2__
پنج شنبه 17 اسفند 1385, 13: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, 21:06 عصر
این تابع فکر نمی کنم دقیق تاریخ رو بده

چون سالهای کبیسه و ... رو مد نظر نمیگیره - باید به صورت دستی دو تاریخ رو از هم کم کنی.

someCoder
جمعه 18 اسفند 1385, 00:12 صبح
یک مشکل مهم داراین یعنی چی؟

saeed_rezaei
جمعه 18 اسفند 1385, 00: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, 09:52 صبح
سلام دوست عزیز.

عنوان تاپیک شما مشکل دارد.

به نظر خیلی از دوستان در عنوان باید مشکلی که داری را بیان کنی نه اینکه از کلماتی مثل کمک و مشکل و ... استفاده کنی.

من خودم نیز تا چند وقت قبل همین مشکل شما رو داشتم و تاپیک من پاک شد.

برای اینکه دیگه با این مشکل ها سر و کار نداشته باشی در آینده از این کلمات استفاده نکن.

__H2__
دوشنبه 21 اسفند 1385, 14:13 عصر
این تابع فکر نمی کنم دقیق تاریخ رو بده

چون سالهای کبیسه و ... رو مد نظر نمیگیره - باید به صورت دستی دو تاریخ رو از هم کم کنی.

سلام
آن کد چند خطی به ظاهر درپیت، کاملاَ جواب دقیق را میدهد و به هیچ وجه نیاز به کارهای دیگر نیست.

seeker
دوشنبه 21 اسفند 1385, 16:21 عصر
این تابع فکر نمی کنم دقیق تاریخ رو بده

چون سالهای کبیسه و ... رو مد نظر نمیگیره - باید به صورت دستی دو تاریخ رو از هم کم کنی.
کاملا دقیق
چون خودش سالهای کبیسه رو میشناسه ومحاسبه میکنه
میتونین آزمایش کنین
دوتا تاریخ با اختلاف 5 سال رو از هم کم کنین بعد تقسیم به 5 کنین اگه دقیقا 365 داد یعنی غلطه و کبیسه رو حساب نمیکنه اما اگه جوابی غیر از این داد یعنی درسته و کبیسه ها رو هم حساب میکنه