Tam beklediğim gibi kimse birşey yazmamış. Olsun önemli değil, bir ipucu veriyorum.
Karakter katarı ya da string olarak aldığımız zaman değişkenini nasıl bir tamsayı'ya çeviririz?
Yani bize gelen bilgi "10:30:00" gibi bir bilgi olacağından bunun saat, dakika ya da saniye cinsinden karşılığını bulmamız, işlem yapma açısından işimizi kolaylaştıracaktır. Yani saatin 10buçuk olması kaç saniye eder bunu hesaplamak istesek mesela nasıl yaparız?
gercekSaat'in "11:30:00" a eşit olduğunu düşünelim ve bunun kaç saat olduğunu bulmaya çalışalım. (cevabın 11 etmesi gerekir.)
gercekSaat, bir dizi olduğu için bu dizinin 0. elemanı bize '1' vermelidir. Yani gercekSaat[0] = '1' dir. Bunun gibi gercekSaat[1] = '1' , gercekSaat[2] = ':', gercekSaat[3] = '3', gercekSaat[4] = '0' ve böyle devam eder. Fakat burada dikkat edilmesi gereken nokta alınan değerlerin karakter tipinde olduğu, tamsayı olmadığıdır. Yani siz gercekSaat[0] üzerinde matematiksel bir işlem yapmaya kalkarsanız istediğiniz sonuçları elde edemezsiniz çünkü gercekSaat[0] karakter olarak '1' etse de, tamsayı olarak sizin de tecrübe edebileceğiniz gibi karşılığı 49 dur.
Ne alaka diye soracak olursanız, ASCII tablosunda (
http://www.asciitable.com/) '1' karakterinin değeri 49'dur. Her rakam, kendisine 48 eklenerek çıkar karşımıza. Bu yüzden eğer bir karakterin sayısal değeri üzerinde işlem yapmak istiyorsak, onun int (yani tamsayı) değerinden 48 çıkartmamız gerekecektir. Diyelim ki gercekSaat[0] değerini 10' la çarpıp üzerine gercekSaat[1] değerini eklemek istiyoruz.
int saat = (int(gercekSaat[0]) - 48) * 10 + (int(gercekSaat[1]) - 48);
(int(gercekSaat[0]) - 48) * 10 => gercekSaat[0] karakterini tamsayıya dönüştür, bu değerden 48 çıkart ve sonucu 10 ile çarp.
Burada adım adım inceleyebilirsiniz ne yaptığımızı...
gercekSaat[0] = '1' (karakter)
int(gercekSaat[0]) = 49 (tamsayı)
int(gercekSaat[0]) - 48 = 1 (tamsayı)
(int(gercekSaat[0]) - 48) * 10 = 10 (tamsayı)
(int(gercekSaat[0]) - 48) * 10 + (int(gercekSaat[1]) - 48) = 11 (tamsayı)
Bu kadar ipucu şimdilik yeter sanırım. Hadi kolay gelsin.