1

Konu: tarih saat yuvarlama

selamlar;

DATETIME(2007,11,10,7,35) bunu 08:00 a,  DATETIME(2007,11,10,18,15) bunu 18:00 a nasıl yuvarlaya bilirirm.

Bilmediğin Neyse Yanıldığındır.

2

Re: tarih saat yuvarlama

saat hanesini ayırarak yapabilirsin.

if dakika >=30 ise ve saat<23
saat=saat+1
dakika=0
endif

if dakika >=30 ise ve saat=23
saat=0
dakika=0
endif

if dakika <=30 ise ve saat=0
saat=0
dakika =0
endif

if dakika <=30 ise ve saat<=23
saat=saat-1
dakika =0
endif

gibi. şartlar tam uymayabilir ama demek istediğim bu.

3

Re: tarih saat yuvarlama

Visual Fox Pro
?TamSaat(DATETIME(2007,11,10,7,35))

?TamSaat(DATETIME(2007,11,10,18,15))
 
FUNCTION TamSaat(ttTime)
LOCAL ltTime
ltTime = DTOT(TTOD(m.ttTime))
RETURN m.ltTime + ROUND((m.ttTime - m.ltTime)/3600,0)*3600

4

Re: tarih saat yuvarlama

günaydın.

Hocam süpersiniz ellinize sağlık.

Bilmediğin Neyse Yanıldığındır.

5 Son düzenleyen, mrduyar (22.11.2007 09:03:05)

Re: tarih saat yuvarlama

arkadaşlar ufak bir hata yaomışım.
DATETIME(2007,11,10,7,35) bunu 08:00 sorun yok.

DATETIME(2007,11,10,18,15) bunu 18:30 a nasıl yuvarlaya bilirirm.

ben aslında saatlerin yarım saat yukarı yuvarlanmasını istiyordum.


2 dakika sonra doğru cevabı buldum.

Visual Fox Pro
?YarimSaat(DATETIME(2007,11,10,7,15))

?YarimSaat(DATETIME(2007,11,10,18,59))
FUNCTION YarimSaat(ttTime)
LOCAL ltTime
ltTime = DTOT(TTOD(m.ttTime))
RETURN m.ltTime + CEILING((m.ttTime - m.ltTime)/1800)*1800
Bilmediğin Neyse Yanıldığındır.

6

Re: tarih saat yuvarlama

Bulmussun o zaman bence jenerik yap fonksiyon adı degiştireceğine:

Visual Fox Pro
?SaatYuvarla(DATETIME(2007,11,10,7,17)) && varsayılan 1 saat

?SaatYuvarla(DATETIME(2007,11,10,7,17),3600)
?SaatYuvarla(DATETIME(2007,11,10,7,17),1800)
?SaatYuvarla(DATETIME(2007,11,10,7,17),900)
?SaatYuvarla(DATETIME(2007,11,10,18,59))
 
FUNCTION SaatYuvarla(ttTime,  tnSeconds)
LOCAL ltTime
tnSeconds = evl(m.tnSeconds,3600) && varsayılan 1 saat
ltTime = DTOT(TTOD(m.ttTime))
RETURN m.ltTime + round((m.ttTime - m.ltTime)/m.tnSeconds,0)*m.tnSeconds

Not: Ceiling degil round.

7

Re: tarih saat yuvarlama

Yukarı demissin o zaman ceiling() akla yakın. Ya da onu da parametre yap:) Asagı,yukarı,round:)

8

Re: tarih saat yuvarlama

Hocam aslında hepsini yaptın.
Sizin gönderdiğini koda yakın oldu neredeyse. Çok Teşrkkürler.

Bilmediğin Neyse Yanıldığındır.