folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder İki Zaman Arasinda Calisma Saatlerini Hesaplama Sql Veya Excel



İki Zaman Arasinda Calisma Saatlerini Hesaplama Sql Veya Excel

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    geniuss
    geniuss's avatar
    Kayıt Tarihi: 12/Nisan/2007
    Erkek

    Selam arkdaslar

    baslikta yazdigim gibi iki zaman arasinda ( gun + saat ) calisma saatlerini hesaplayabilicek bi funksiyon lazim  haftasonlari disidna ve sadece saat 8 den 5 kadar, bunu nasil yapabilicegim hakkinda fikri olan varmi ?

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SerYolcu
    SerYolcu's avatar
    Kayıt Tarihi: 14/Ocak/2010
    Erkek

    PHP + MySql olarak şöyle bir algoritma aklıma geldi.

    Bir işe başlanıyor diyelim..

    Bu işin başlangıç zamanını Unix Time olarak veritabanına girersin.

    Bu işin bitiş zamanını da Unix Time olarak veritabanına girersin.

    Başlangıç ile bitiş arasındaki farkı kolaylıkla hesaplayabilirsin.

    http://tr1.php.net/manual/tr/function.time.php


    Ondan çocuk olmamıştır (Kimsenin babası değildir). Kendisi de doğmamıştır (kimsenin çocuğu değildir). İhlas Suresi 3 üncü ayette bunlar yazar.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    GodKlaus
    GodKlaus's avatar
    Kayıt Tarihi: 13/Ocak/2014
    Erkek

    SQL olarak şöyle bir yol izle diyebilirim ancak ama kod olarak pek fazla yardım edemem baştan söyliyim :(

    öncelikle adamın başlangıç ve bitiş tarihi olucak

    mesela başlangıç= 29/07/2013

    Bitiş = 16/6/2014

     

    toplan gün olarak böyle bulabilirsin

    bir ay = 30 gün Başlangıç Ayı = 07

    kckAy = 12-7;

    burdan 5 gelir bunuda 30 ile çarp =150 birde 29unda başlamış onuda 30dan çikart =1

    150+1 = 151 gün 2013 senesini bitirmek için çalışmış.

    sonra birde 2014 te çalışmış belli bir süre.

    onuda hiç çıkatma yapmadan (ay*3)+gün olarak bul

    196 gün gelir ordanda

    151+196= 347 gün yapıyor

    bir hafta = 7 gün ve 2 günü tatil.

    347/7= 49 gibi bişey yapar. Yani 49 hafta var

    bunuda 2 ile çarp ki çalışmadığı hafta sonu günlerini bul.

    98 olur buda.Yani adam 347 günde 98 gün çalışmamış.

    347-98 = 249 gün çalışmış (sanki bir yerde yanlışlık yaptım :)

    Neyse bir günde 8 saat çalışıyormuş bunuda 249 * 8 = 1992 yapıyor sanırım.

    şimdi biraz işlerim var 4-5 saat sonra sql sorgusu için yardımcı olurum sana :D ama mantık bu.

    Eğer SQLim kuvvetli yaparım diyorsan sen yap bende yardımcı olucam sana :)


    Telegram : @CuneytKuscu && Discord : Tyenuc#2679 | İstanbul Avr. Yazılım Mühendisi ve sonunda işim var (:
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unix
    Andrei
    Andrei's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Aralık/2008
    Erkek

    sql icin prosedür olusturman gerekecektir ki her yıl bazı tatil günleri degistigi icin, olusturulacak olan prosedürde takvime göre bunları belirtmen gerekir. haftasonlarını da aynı sekilde aradan cıkarmak icin pl/sql'de case yapısı kullanılabilir, sql'de birebir aynı mı bilmiyorum.

    sıfırdan ugrasamam ama yazmaya calısırsan, biz de yardımcı olmaya calısırız.


    %40 indirimli olarak "Centos Sistem ve Sunucu Yönetimi" adlı kitabımızı satın alarak, Linux üzerine yapılacak olan devam projeleri icin destekte bulunabilirsiniz : http://www.hepsiburada.com/centos-sistem-ve-sunucu-yonetimi-oku-izle-dinle-ogren-p-KKODLAB01579
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SerYolcu
    SerYolcu's avatar
    Kayıt Tarihi: 14/Ocak/2010
    Erkek
    GodKlaus bunu yazdı

    SQL olarak şöyle bir yol izle diyebilirim ancak ama kod olarak pek fazla yardım edemem baştan söyliyim :(

    öncelikle adamın başlangıç ve bitiş tarihi olucak

    mesela başlangıç= 29/07/2013

    Bitiş = 16/6/2014

       Benim önerdiğim yol, saat - dakika - saniye cinsinden sonuç verir... :)


    Ondan çocuk olmamıştır (Kimsenin babası değildir). Kendisi de doğmamıştır (kimsenin çocuğu değildir). İhlas Suresi 3 üncü ayette bunlar yazar.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    geniuss
    geniuss's avatar
    Kayıt Tarihi: 12/Nisan/2007
    Erkek
    SerYolcu bunu yazdı
    GodKlaus bunu yazdı

    SQL olarak şöyle bir yol izle diyebilirim ancak ama kod olarak pek fazla yardım edemem baştan söyliyim :(

    öncelikle adamın başlangıç ve bitiş tarihi olucak

    mesela başlangıç= 29/07/2013

    Bitiş = 16/6/2014

       Benim önerdiğim yol, saat - dakika - saniye cinsinden sonuç verir... :)

    hocam sagol ama heralde soruyu okumamissin, senin onerdigin yol hic bir ise yaramiyor benim bahsetigim sadece calisma gunleri ve calisma saatlerini hesaplamak,  bide veritabanina unix time girmene gerek yok, senin bahsetigin seyi su sekilde haledersin TIMESTAMPDIFF(SECOND, '2013-06-29 13:13:55', '2013-06-16 15:20:18'), yani konu anladigin kadar basit degil.

    geniuss tarafından 27/Haz/14 11:54 tarihinde düzenlenmiştir
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    geniuss
    geniuss's avatar
    Kayıt Tarihi: 12/Nisan/2007
    Erkek
    Andrei bunu yazdı

    sql icin prosedür olusturman gerekecektir ki her yıl bazı tatil günleri degistigi icin, olusturulacak olan prosedürde takvime göre bunları belirtmen gerekir. haftasonlarını da aynı sekilde aradan cıkarmak icin pl/sql'de case yapısı kullanılabilir, sql'de birebir aynı mı bilmiyorum.

    sıfırdan ugrasamam ama yazmaya calısırsan, biz de yardımcı olmaya calısırız.

    hocam cevabin icin cok sagol, tatil gunleri onemli degil sadece hafta sonlarini hesaplamasin ve sadece calisma saatlerini alsa yeter

    yazmaya basliyim takildigim bir yer falan varsa yardimci olursaniz cok sevinirim 

    geniuss tarafından 27/Haz/14 11:58 tarihinde düzenlenmiştir
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    geniuss
    geniuss's avatar
    Kayıt Tarihi: 12/Nisan/2007
    Erkek
    GodKlaus bunu yazdı

    SQL olarak şöyle bir yol izle diyebilirim ancak ama kod olarak pek fazla yardım edemem baştan söyliyim :(

    öncelikle adamın başlangıç ve bitiş tarihi olucak

    mesela başlangıç= 29/07/2013

    Bitiş = 16/6/2014

     

    toplan gün olarak böyle bulabilirsin

    bir ay = 30 gün Başlangıç Ayı = 07

    kckAy = 12-7;

    burdan 5 gelir bunuda 30 ile çarp =150 birde 29unda başlamış onuda 30dan çikart =1

    150+1 = 151 gün 2013 senesini bitirmek için çalışmış.

    sonra birde 2014 te çalışmış belli bir süre.

    onuda hiç çıkatma yapmadan (ay*3)+gün olarak bul

    196 gün gelir ordanda

    151+196= 347 gün yapıyor

    bir hafta = 7 gün ve 2 günü tatil.

    347/7= 49 gibi bişey yapar. Yani 49 hafta var

    bunuda 2 ile çarp ki çalışmadığı hafta sonu günlerini bul.

    98 olur buda.Yani adam 347 günde 98 gün çalışmamış.

    347-98 = 249 gün çalışmış (sanki bir yerde yanlışlık yaptım :)

    Neyse bir günde 8 saat çalışıyormuş bunuda 249 * 8 = 1992 yapıyor sanırım.

    şimdi biraz işlerim var 4-5 saat sonra sql sorgusu için yardımcı olurum sana :D ama mantık bu.

    Eğer SQLim kuvvetli yaparım diyorsan sen yap bende yardımcı olucam sana :)

    hocam cevabin icin cok sagol su cozumu bi analize ediyim eger aksam vaktin varsa sql  icin de yardimci olabilirsen cok sevinirim

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    GodKlaus
    GodKlaus's avatar
    Kayıt Tarihi: 13/Ocak/2014
    Erkek

    şuan boşum :)

    2 sene okulda sql dersi aldım.yani bilgilerim kısıtlı ama çözüm olarak mantığını daha basit halde tekrar çözümleyebilirim :)

    ama kodlama kısmında basit yerlerde yardım edebilirim ancak :(


    Telegram : @CuneytKuscu && Discord : Tyenuc#2679 | İstanbul Avr. Yazılım Mühendisi ve sonunda işim var (:
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hybris
    Hybris's avatar
    Kayıt Tarihi: 12/Haziran/2007
    Erkek

    http://pastebin.com/TEEjW5Ck


    agile isn’t how fast you can go, it’s how fast you can turn.
Toplam Hit: 1816 Toplam Mesaj: 10