Thứ Tư, 27 tháng 6, 2012

PHP - Hàm thêm dấu chấm (.) vào một chuỗi, VND

Tôi lấy ví dụ cụ thể nhé ! giả sử bạn có số tiền trong table chương trình kế toán gì đó chẳng hạn, số tiền của bạn Ex : 2500000 giờ bạn muốn nó thành : 2.500.000. Thì hàm này là thứ bạn cần rồi đó.

function VndDot($strNum)
{
        $len = strlen($strNum);
        $counter = 3;
        $result = "";
        while ($len - $counter >= 0)
        {
            $con = substr($strNum, $len - $counter , 3);
            $result = '.'.$con.$result;
            $counter+= 3;
        }
        $con = substr($strNum, 0 , 3 - ($counter - $len) );
        $result = $con.$result;
        if(substr($result,0,1)=='.'){
            $result=substr($result,1,$len+1);   
        }
        return $result;
}

Ex: VndDot(2500000) nó sẽ trả ra kết quả là : 2.500.000. 
Vậy nếu số : 1000000000 nó có làm được không ? Copy và test thử nhé.
Nhớ cảm ơn nghen.

PHP - Hàm đọc số tiền bằng chữ, VND

Tặng các bạn quan tâm về hàm (Function) đọc số tiền bằng chữ.
Ex: 250.000 (Hai trăm năm mươi ngàn). 

function VndText($amount)
{
         if($amount <=0)
        {
            return $textnumber="Tiền phải là số nguyên dương lớn hơn số 0";
        }
        $Text=array("không", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín");
        $TextLuythua =array("","nghìn", "triệu", "tỷ", "ngàn tỷ", "triệu tỷ", "tỷ tỷ");
        $textnumber = "";
        $length = strlen($amount);
       
        for ($i = 0; $i < $length; $i++)
        $unread[$i] = 0;
       
        for ($i = 0; $i < $length; $i++)
        {              
            $so = substr($amount, $length - $i -1 , 1);               
           
            if ( ($so == 0) && ($i % 3 == 0) && ($unread[$i] == 0)){
                for ($j = $i+1 ; $j < $length ; $j ++)
                {
                    $so1 = substr($amount,$length - $j -1, 1);
                    if ($so1 != 0)
                        break;
                }                      
                      
                if (intval(($j - $i )/3) > 0){
                    for ($k = $i ; $k <intval(($j-$i)/3)*3 + $i; $k++)
                        $unread[$k] =1;
                }
            }
        }
       
        for ($i = 0; $i < $length; $i++)
        {       
            $so = substr($amount,$length - $i -1, 1);      
            if ($unread[$i] ==1)
            continue;
           
            if ( ($i% 3 == 0) && ($i > 0))
            $textnumber = $TextLuythua[$i/3] ." ". $textnumber;    
           
            if ($i % 3 == 2 )
            $textnumber = 'trăm ' . $textnumber;
           
            if ($i % 3 == 1)
            $textnumber = 'mươi ' . $textnumber;
           
           
            $textnumber = $Text[$so] ." ". $textnumber;
        }
       
        //Phai de cac ham replace theo dung thu tu nhu the nay
        $textnumber = str_replace("không mươi", "lẻ", $textnumber);
        $textnumber = str_replace("lẻ không", "", $textnumber);
        $textnumber = str_replace("mươi không", "mươi", $textnumber);
        $textnumber = str_replace("một mươi", "mười", $textnumber);
        $textnumber = str_replace("mươi năm", "mươi lăm", $textnumber);
        $textnumber = str_replace("mươi một", "mươi mốt", $textnumber);
        $textnumber = str_replace("mười năm", "mười lăm", $textnumber);
       
        return ucfirst($textnumber." đồng chẵn");
}


Note : Hy vọng nó có ích với mọi người.

PHP - Trừ thời gian đã sử dụng (Karaoke)

Mình ngớ ngẩn thật, tính mãi không ra nổi bài toán "Tính thời gian sử dụng thực của một quán karaoke?". Làm không được, khỏi xem Euro luôn. mò mẫm hết 27 phút, lục lọi tung internet. Hix chẳng được gì ngoài cách lấy giờ hệ thống. Tự viết theo cách cùi bắp của mình xem nào.
<?php
function timeKaraoke($hBegin,$sBegin,$money)
{

       //$money tiền trên 1 h sử dụng

       //Lấy giờ hiện tại của hệ thống
       $hEnd=gmdate("H", time()+7*3600);
       // Lấy phút hiện tại của hệ thống
       $sEnd=gmdate("i", time()+7*3600);
       // Tính giờ và phút sử dụng
       $resultH=($hEnd-$hBegin)*60+$sEnd-$sBegin;
       // Lấy số tiếng sử dụng
       $hplay=substr(($resultH/60),0,1);
       //Tính tiền giờ sử dụng
       $getMoney=round(($resultH*$money)/60);
       // Lấy số phút sử dụng
       $splay=$resultH%60;
      
       echo "Ban su dung het : ".$hplay." h : ".$splay." p So tien la : ".$getMoney;
  



timeKaraoke(12,22,80000);

?>

Ok đã test song, Buồn ngủ quá, nghỉ xem Euro luôn ku.

Thứ Bảy, 16 tháng 6, 2012

Lời Ngỏ


Lâu lắm rồi mới quay lại blog, một cái từ mà nó đã làm đảo điên cư dân mạng khắp hành tinh...tôi cũng đã từng là một trong những người như thế...Từ khi blog bước vào những ngày lịch sử đầu tiên. Tôi đã tham gia...và rồi lãng quên vì công việc, vì nhiều lý do khác.
Và giờ đây, tôi trở lại không phải với mục đích là đễ chia sẻ, dãi bày nỗi lòng của mình nữa. Mục đích rõ ràng hơn, giờ đây tôi muốn dùng nó để chia sẻ những kinh nghiệm về nghành nghề lĩnh vực mình đang hoạt động.
  • Phần cứng máy tính.
  • Mạng máy tính.
  • Phần mềm máy tính.
  • Máy in, Photocopy.
  • và còn nhiều thứ trong cuộc sống.
 Có thể lắm những thứ tôi chia sẻ, bạn đã bắt gặp nhiều ở một nơi nào đó, và bạn cảm thấy nó thật tầm thường. Nhưng tôi tin rằng việc mình làm nó vẫn còn hữu ích với một ai đó.
Thử hỏi ! Tôi có cần những sự động viên của cộng đồng, của những người cảm thấy, những chia sẻ của tôi thật có ích?


"Từng giọt nước một, sẽ thành một đại dương rộng lớn" và tôi tin rằng bạn cũng đang có suy nghị như tôi.