View Full Version : مبتدی: جمع بندی زمان
Emir New
سه شنبه 03 اسفند 1389, 06:59 صبح
با سلام خدمت اساتید گرامی
می خواستم بدونم که چطور می تونم ۲ تا متغیر زمانی را با هم جمع کنم
gh_khajehzade
سه شنبه 03 اسفند 1389, 08:54 صبح
سلام-منظورتون چیه؟با تعریف یک متغیر زمانی میتونی اعمال جمع یا تفریق رو انجام بدی.
ll={^1389-02-01}
?ll+1
Emir New
سه شنبه 03 اسفند 1389, 18:29 عصر
ولی برای من این کار رو نمی کنه من دو تا متغیر این طوری تعریف می کنم
time1 = time()
time2=TIME()
? time1 - time 2
و جوابم این هست 18:20:0018:20:20
و یه سوال دیگه ای هم داشتم اون هم این هستش که چطور می تونم یه مقدار عددی رو به مقدار زمانی تبدیل کنم
به طور مثال اگر می خواستیم یه متغیر عددی رو به یه رشته تبدیل کنیم از دستور زیر استفاده می کردیم
str(number)
binyaz2003
سه شنبه 03 اسفند 1389, 20:00 عصر
براي مورد اول شما بايد از تابع DateTime به جاي Time استفاده کنيد و در مورد دوم شما ميتوانيد با استفاده از تابع CTOT يک عبارت رو به نوع DateTime تبديل کنيد.
لطفا پارامترهاي اين دوتابع رو مطالعه کنيد.
Emir New
شنبه 21 اسفند 1389, 01:34 صبح
با تشکر از اقای binyaz2003 شاید بهتر باشه درباره کاری که می خوام بکنم بیشتر توضیح بدم
من می خوام یه برنامه شبیه ساعت زن درست کنم که کارمند مورد نظر وقتی می خواد وارد شود کد خود را بزند و یه ساعت رو ثبت کند و خروج هم یه ساعت رو ثبت کنه
و در کل ماه باید این ساعت خروج رو منهای ساعت ورود کنیم تا کل کارکرد روز طرف معین شود
شاید این برای شما که یه حرفه ای هستید کاری نداشته باشد ولی من که مبتدی هستم و هیچ منبع درستی هم ندارم که ازش استفاده کنم هنوز که هنوزه در این موضوع مشکل دارم
لطف کنید اگر نمونه سورس یا یه چیزی که بتونه در این زمینه به من کمک کنه در اختیار من بگذارید ممنون میشم
rahro
شنبه 21 اسفند 1389, 07:20 صبح
سلام
خودت مي نشستي يه فانکشن ميساختي که کارت رو راه بيندازد.
فانکشني که در ذيل معرفي ميکنم ميتونه دو تا متغير زمان رو با جمع و يا از هم کم کنه
Example:
xtime=TIME()
ytime='18:24:01'
? jam_hour(xtiem,ytime,'-')
? jam_hour(xtiem,ytime,'+')
تابع:
FUNCTION JAM_HOUR
PARAMETE S1, S2, AMAL
IF EMPTY(S1)
S1 = '00:00'
ENDIF
IF EMPTY(S2)
S2 = '00:00'
ENDIF
S1 = IIF(S1 == '0', '00:00', S1)
S2 = IIF(S2 == '0', '00:00', S2)
T = AT(':',S1)
T1 = VAL(ALLT(SUBSTR(S1, 1 ,T-1)))
T2 = VAL(ALLT(SUBSTR(S1, T+1, 5)))
START = T1 * 60 + T2
IF AT(':',S1,2)>0
START = START + INT(VAL(RIGHT(S1,2)))
ENDIF
T = AT(':',S2)
T1 = VAL(ALLT(SUBSTR(S2, 1 ,T-1)))
T2 = VAL(ALLT(SUBSTR(S2, T+1, 5)))
END = T1 * 60 + T2
IF AT(':',S2,2)>0
END = END + INT(VAL(RIGHT(S2,2)))
ENDIF
IF AMAL = '+'
T = START + END
ELSE
IF START > END
EX = '00:00'
RETURN(EX)
ENDIF
T = END - START
ENDIF
X1 = ALLT(STR(T % 60))
X2 = ALLT(STR(INT(T/60)))
EX = IIF(LEN(X2) = 1, '0'+X2, X2) + ':' + IIF(LEN(X1) = 1, '0'+X1, X1)
RETURN(EX)
Emir New
پنج شنبه 18 فروردین 1390, 09:38 صبح
با سلام مجدد
من دوباره به یه مشکل دیگه بر خوردم اونم این هست که می خوام دست مزد طرف رو حساب کنم اون خورده ساعت رو چطور باید حساب کنم
مثلا اگر کل کارکرد طرف 12:45 بود اون 45 دقیقه رو چطور ضرب در دست مزدش کنم
rahro
پنج شنبه 18 فروردین 1390, 11:38 صبح
اين ديگه پرسش برنامه نويسي نيست! ، رياضيه
خوب اگر 60 دقيقه مساوي با ايکس ريال باشه ، 45 دقيقه مساوي با چند رياله ؟
ايکس مساوي با دستمزد هر ساعت
اگر فانکشن رو ميخاي ميشه اين :
atime=TIME()
bfi=165400
? intimetofi(atime,bfi)
FUNCTION intimetofi
PARAMETERS xtime,xfi
LOCAL Xhours as Number ,xmin as Number
Xhours=INT(VAL(LEFT(xtime,2)))
xmin=INT(VAL(SUBSTR(xtime,4,2)))
return((Xhours*xfi)+((xfi/60)*xmin))
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.