Skip to main content

AccessTr.neT


Saatleri Sayıya Çevirme

Saatleri Sayıya Çevirme

Çözüldü #1
Merhaba

Ekteki dosyamda bilgi girişi yapılmış detay isimli tablom mevcut.
Detay tablom da sözleşme başlangıç tarihi ve bitiş tarihi içinde yapılan servislerin girişleri var olduğunu kabul edelim.Bu sözleşmede yapılacak işin başlangıç saati ve bitiş saati de mevcut.

* Benim yapmak istediğim iş : Sözleşme dahilinde kaç kere işlem(servis) yapılmış.
* Yapılan her işlemin başlangıç ve bitiş saatleri var.Yapılan her servisin kaç saat sürdüğünü bilmek istiyorum.(Yani Bitiş Saati - Başlangıç Saati)
* Yapılan her hareketteki harcanan saatin rakama dönüştürmek istiyorum.Şöyle ki yaptığım girişte başlangıç saati :10:00, Bitiş saati ise 14:30 yani 2 saat 30 dk yapıyor.
Ben her 2 saat tutan hareketi rakam olarak 1 servis olarak almak istiyorum. Amacım standart servis hizmetimin 2 saat olması, 2 saati geçtiğinde misal 4 saat süren bir işlem bilgisini hizmet süresinin 4 saat olduğundan rakam olarak 2 servis yazmasını istiyorum.
* saat arası kalan dakikaları da 30 dk geçmez ise o saatin başlangıcını almasını eğer 31 dk geçerse başka bir yerde genel toplam alındığında toplanarak saat hesabına dahil edilmesini istiyorum.
Örnek :
başlangıç saati 11:35 bitiş saati:17:00
harcanan zaman : 5 saat 25 Dk
Servis sayısına çevirirsek :
Her servis 2 Saat=1 servis ise, 5 saat 25 dk = 2 servis + 25 dk yapar.
saatlerin toplamında dk yı bir üst saate yuvarlamasını nasıl yapabilirim.

Saygılarımla
İsmail KOŞARER

Ek Dosyam:
saat.rar

Cevapla
Çözüldü #2
Çözüm ararken kafama takılan soruları sormak istedim

"Her servis 2 Saat=1 servis ise, 5 saat 25 dk = 2 servis + 25 dk yapar."

5 saat 25 dakika = 2 servis + 1 saat + 25 dakika yapmaz mı.

Bahzettiğiniz hesaba göre 1 saat 40 dakikalık zamanın kaç servis yapması gerekiyor ?


5 saat 25 dakikalık zamanı sorguda sütunlarda
2 servis
1 saat
25 dakika
şeklinde göstermemiz işinizi görecek mi ?


[Resim: do.php?img=2258]
Cevapla
Çözüldü #3
Merhaba

Her servis 2 Saat=1 servis ise, 5 saat 25 dk = 2 servis + 25 dk yapar."

5 saat 25 dakika = 2 servis + 1 saat + 25 dakika yapmaz mı.

Bahzettiğiniz hesaba göre 1 saat 40 dakikalık zamanın kaç servis yapması gerekiyor ?

*****************************************************************

Evet Ben yazarken yukarıda 1 saati unutmuşum.Özür dilerim.

Arada kalan zamanın saat cinsinden değilde toplam dk cinsinden hesaplayıp o firma için gidilen toplam servis sayısını bulurken Toplam dk.larında /120 (2 saat) şeklinde hesaplayıp değer elde edip bu değerin küsüratlı çıkması durumda misal; 0.51 veya üstü,durumlarda servis sayısına +1 , 0,50 ve aşağısı için herhangi bir yuvarlama yapmadan 0 kabul edip servis sayısıyla toplamak işimi görür diye düşünüyorum.

Örnek Yukarıdaki zamanlama üzerinden gidelim.
ilk gittiğim servis 5 saat 25 dk hizmet verilmiş.
bu hizmeti ben kayıtlarıma işlerken saat cinsinde girip sorguda veya formda kendisi

2 saat= 1 Servis kabul edecek
5 Saat;25DK: 2 servis + 1 Saat + 25 dakika

bu durumda 2 servis dışında kalan 1 saat +25 dk yı genel olarak dakikaya çevirip ayrı bir hücrede dakika hesabı olarak tutayım: 60dk(1Saat) +25Dk =85Dakida bu servisin artı süresi var
bunu 85 dk olarak dakika hücresinde tutalım.

Gene Aynı Firmaya Farkı zamanda farklı saat aralığında gitmiş olalım.
bu serviste 3 saat 40 dk hizmet verdiğimizi düşünelim

her 2 saat =1 Servis Sayısı

3 Saat 40Dk = 1 Servis + 1 Saat +40 Dk şekinde durum geliyor.

Bu durumda kalan 1 saat 40 dk.yı Dakika cinsine çeviriyorum yani 100 Dk yapıyor.
Kayıtlarıma ben Servis Sayısına 1, Dakika Hücresine 100 Dk yazıyorum.

Sonra Bu firmaya ben kaç kere gitmişim kaç servis sayısı kadar hizmet etmişim diye sorguya aldığımda ;

bu firmaya 2 kere gitmişim
Toplam (2+1) servis + (85 Dk+ 100Dk) Dakika servis bilgisi mevcut

Ben Burda Kesin rakam istediğimden 3 servis + 185 dk değilde
185dk /120 (2saat lik Servis Saati) =1,54 çıkar
Ben 1,54 lük rakamı yuvarlama yaptığımda küsüratın 051 den büyük olduğu için bu toplam dakikanın servis karşılığını 2 kabul etmesini küsüratın .50 den küçük ise +0 şeklinde olması gerekecek.Yani başındaki saati kabul edecek,Saat olmasa bile gene 0 olacak(Bazen 15 dk veya 45 dk gibi de çıkabilir).Fakat Benim toplam dakikalarım 1.54 çıktığından dolayı Servis karşılığını 2 olarak almasını ve dakikda toplamından elde ettiğim 2 rakamıyla Diğer hücredeki servis sayınını toplayıp tek bir rakam almasını istiyorum.

Servis Sayısı Toplamı :3
Dakikadan Elde Edlien servis Sayısı : 1,54 den = 2
bunların toplamı da 3+2=5

Özetle 2 kere gittiğim Firmaya 5 servislik saat/dk harcamışım.
Benim özellikle yapmak istediğim iş bu.

(2 Servis Hizmetinde = 5 Servislik Hizmet(Zaman) verilmiş.)


Yardımlarınız İçin Şimdiden Teşekkür Ederim.
Saygılarımla
İsmail KOŞARER



Cevapla
Çözüldü #4
Yeni bir modül açıp ;

Public Function ssaat(bsl As Date, bts As Date, moDkk As Integer)
Dim frk, artan, ServSat
frk = DateDiff("n", bsl, bts) '400=120+120+120+40
ServSat = Fix(frk / moDkk) '3
artan = frk - (ServSat * moDkk) '200-(3*120)

ssaat = ServSat + IIf(artan >= moDkk / 2, 1, 0)
End Function


yazın ve sorgudaki alanda bu fonksiyonu şu şekilde kullanın;

Servis: ssaat([bas_saat];[bit_saat];120)



Saygılar, iyi çalışmalar.
*********
Kod, formül vs bilmek önemlidir ama mantığını yürütebilmek, nerede ve nasıl kullanılacağını bilmek daha önemlidir.
Cevapla
Çözüldü #5
Yazdığınız modül gerçekten istediğim gibi çalıştı.Çok Teşekkür ederim.
Sormak istediğim 400 =120+120+120+40 formülünün ne anlama geldiği.
Teşekkürler İyi Çalışmalar
Cevapla
Çözüldü #6
'400=120+120+120+40 Kısmında Ayhan hocam kod içinde açıklama kullanmış.
' Tek tırnaktan sonra yazılanlar Visual Basicte Açıklamalardır.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task