ورود

View Full Version : سوال: محاسبه تاریخ به سال و ماه و روز



mehdi-1985
پنج شنبه 08 بهمن 1388, 22:56 عصر
سلام

من می خوام تاریخ شروع و تاریخ پایان را به سال و ماه و روز تبدیل کند و وقتی امتیاز بهش می دهیم آن را حساب کند ( ساب فرم emtize )و امتیازش را در جدول قرار دهد این برنامه را قبلا گذاشتم توی همین سایت ولی جواب دقیقی نگرفتم ممنون می شم دوستان بنده را مجددا راهنمایی کنند.

مجتبی جوادی
جمعه 09 بهمن 1388, 18:31 عصر
دوست عزیز اینکه کاری نداره
اول کدی بنویس که اختلاف دو تاریخ را به روز بدهد و بعد با کد دیگری آن اختلاف ره به روز و ماه و سال تبدیل کن
تبدیل سال به روز:

Public Function Date2Day(Dat as string)
Dim Dy,Mn,Yr As Integer
Dim MonDay,YrDay As Long
Dim i As Integer
Dy=Int(Mid(Dat,7,2)
Mn=Int(Mid(Dat,5,2)
Yr=Int(Left(Dat,4)
YrDay=0
MonDay=0
If Mn<7 then
MonDy = (Mn-1)*31+Dy
elseif Mn>6 then
MonDy = (Mn-7)*30 + 186 + Dy
End If
For i=1 To Yr-1
if (i mod 4)=3 then
YrDay = YrDay + 366
Else
YrDay := YrDay + 356
End If
Next i
DateToDay = YrDay+MonDy
End Function
بقیه را کمی خودت فکر کنی موفق میشود

mehdi-1985
پنج شنبه 22 بهمن 1388, 20:55 عصر
سلام
آقا مجتبی تشکر می کنم به خاطر راهنمایی که به من کردی اگه امکان داره درباره کد بالا بیشتر توضیح بدید و منظورتون که فرمودیداختلاف دو تاریخ را به روز بدهد این است که مثلا 1380/9/12 تا 1384/8/10 اگه به روز حساب بشه می شود1454 روز. درست متوجه شدم

mehdi-1985
جمعه 23 بهمن 1388, 12:39 عصر
از دوستان و اساتید اگر نظر و پیشنهادی درباره این موضوع دارند ما را بی نصیب نگذارند.با تشکر

mehdi-1985
جمعه 23 بهمن 1388, 17:21 عصر
دوستان و اساتید محترم لطفا نظر بدید باید چکار کنم.

mehdi-1985
شنبه 24 بهمن 1388, 12:11 عصر
واقعا دارم از این سایت ناامید می شم

dadsara
یک شنبه 25 بهمن 1388, 09:13 صبح
سلام
دوست عزیز ابتدا با استفاده از تابع Diff که در ماژول فایل ضمیمه خودتان می باشد اختلاف دو تاریخ را به روز محاسبه کنید سپس عدد بدست آمده را در امتیاز مربوط به هر روز ضرب کنید

SELECT Table2.rad, Table2.ID, Table2.nam_yegan, Table2.dat_sh, Table2.dat_p, diff([dat_sh],[dat_p]) AS Expr1
FROM Table2;

mehdi-1985
یک شنبه 25 بهمن 1388, 15:46 عصر
سلام
دوست عزیز ابتدا با استفاده از تابع Diff که در ماژول فایل ضمیمه خودتان می باشد اختلاف دو تاریخ را به روز محاسبه کنید سپس عدد بدست آمده را در امتیاز مربوط به هر روز ضرب کنید

SELECT Table2.rad, Table2.ID, Table2.nam_yegan, Table2.dat_sh, Table2.dat_p, diff([dat_sh],[dat_p]) AS Expr1
FROM Table2;

سلام
دوست عزیز اگه امکان داره این دستور را در برنامه قرار بده چون واقعا من سردرگم شدم ضمنا روش دیگه ای هست که فکر کنم روش مناسبی است از 1380/9/12 تا 1384/8/10در نظر بگیرید
(80-1-84),(9-8+12),(12-10+30)

از سال یکی کم می کنیم 1-84
ماه را 12 روز اضافه می کنیم 8+12
روز هم 30 روز اضافه می کنیم 10+30
که می شود 40 20 83 حالا این تاریخ از 12 9 80 کم می کنیم می شود 28 11 3
سه سال و 11 ماه و 28 روز

mehdi-1985
دوشنبه 26 بهمن 1388, 10:48 صبح
دوستان لطفا پیشنهاد بدند.تجربیاتتون را از ما دریغ نکنید

nabeel
دوشنبه 26 بهمن 1388, 17:40 عصر
سلام mehdi-1985

اگه منظور , نظر دهی در خصوص روش شماست , که اون اشتباهه , چرا که و در اون کبیسه بودن سال و تغییرات تعداد روزهای ماه رو لحاظ نکردید
در پست شماره 3 هم تفاضل روزها رو اشتباه بدست آوردید ( میشه 1429 روز )
در مجموع پست شماره 7 که جوابگو باید باشه

موفق باشید

dadsara
سه شنبه 27 بهمن 1388, 09:25 صبح
سلام
ببینید این نمونه بدرد شما می خورد

mehdi-1985
جمعه 30 بهمن 1388, 20:38 عصر
سلام
ببینید این نمونه بدرد شما می خورد

سلام دوست عزیز دمت گرم ولی بازم برنامه گیر میده .و نمایش دادن سال و ماه و روز در این برنامه مهمه حالا اگه بخوام اختلاف به روز را به سال و ماه وروز تبدیل کنم شما چه روشی را پیشنهاد می دهید. و یه سئوال دیگه داشتم شما تابع diff و [modat([dat_sh];[dat_p را مثال زدید اگه امکان داره توضیح دهید این تابع چگونه اختلاف به روز را محاسبه می کند .با تشکر

dadsara
شنبه 01 اسفند 1388, 08:47 صبح
سلام
دوست عزیز من نمی دانم شما چه اصراری به این عمل دارید

نمایش دادن سال و ماه و روز در این برنامه مهمه باتوجه به اینکه تعداد روزهای همه ماهها بایکدیگر برابر نیست عملا بنظر می آید چنین امکانی مفید فایده نباشد