พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com
PHP development / ไปสอบมาครับ ทำข้อสอบได้บ้าง และไม่ได้บ้างครับ รบกวนดูให้หน่อยครับ
ป๋องน้อย
ป๋องน้อย
Thu 20 Apr 2006 11:28:48

1) ตัดตัวอักษรให้แสดงเฉพาะตัวสุดท้ายเช่น ใส่ 4302 => ผลลัพธ์เป็น 2 (ข้อนี้ทำได้คับ) 

2) เติมตัวเลข 0 ให้หน้าตัวเลขต่างๆโดยที่เราสามารถกำหนดจำนวนเลข 0 ได้ เช่น มีตัวเลข 12 หากกำหนดให้แสดง 0 ออกมาหนึ่งตัวก็จะได้ = 012 , หากกำหนดให้แสดง 0 ออกมาสองตัวก็จะได้ = 0012 (หุหุ ข้อนี้ทำไม่ได้คับ ) 

3) เปรียบเทียบวันที่ว่าห่างกี่วัน เช่น วันแรก 12/03/2006 และอีกวันคือ 09/04/2006 ว่าทั้งสองวันนี้ห่างกันทั้งหมดกี่วันคับ (อันนี้ทำไม่ได้คับ ) 

4) ให้กรอกตัวเลขแล้วแปลงเป็นตัวอักษรเงิน เช่น 112 จะได้ = หนึ่งร้อยสิบสองบาท (อันนี้ค้นหาในกระทู้เก่าๆ เจอแล้วคับ แต่ต้องลองรันดูอีกทีคับ ) 

5) ให้แทนที่คำที่ต้องการ เช่นพิมพ์คำว่า "วันนี้กินข้าว" ผมต้องการจะแทนที่คำว่า "ข้าว" เป็น "นมสด" ผลลัพธ์ที่ได้คือ "วันนี้กินนมสด" (ข้อนี้ทำได้แล้วครับ ) 

**** คือว่าเรื่องทั้งเรื่องคือผมไปสอบมา แล้วมีข้อที่ทำได้บ้าง และไม่ได้บ้าง ก็มีข้อสงสัยว่าเราควรจะเขียนอย่างไร และใช้ Function อะไรน่ะคับ เพื่อเอาไว้ไปเจอข้อสอบแบบนี้อีก **** ขอบพระคุณครับ

Administrator
Thu 20 Apr 2006 12:59:33
ข้อ 2 สามารถใช้ sprintf() ได้ครับ เช่น
sprintf("%03d", 12); // จะแสดงผล 012
sprintf("%04d", 12); //จะแสดงผล 0012

ข้อ 3 ค่อนข้างยาวครับ ลองเอาโค๊ดนี้ เป็นของชาวต่างชาติครับ

<?php
  
function bib_datediff($fromtime, $totime=''){
       if(
$totime=='')        $totime = time();
      
       if(
$fromtime>$totime){
          
$tmp = $totime;
          
$totime = $fromtime;
          
$fromtime = $tmp;
       }
      
      
$timediff = $totime-$fromtime;
      
//check for leap years in the middle
      
for($i=date('Y',$fromtime); $i<=date('Y',$totime); $i++){
           if (((
$i%4 == 0) && ($i%100 != 0)) || ($i%400 == 0)) {
              
$timediff -= 24*60*60;
           }
       }
      
$remain = $timediff;
      
$ret['years']    = intval($remain/(365*24*60*60));
      
$remain            = $remain%(365*24*60*60);
      
$ret['days']    = intval($remain/(24*60*60));
      
$remain            = $remain%(24*60*60);

      
$m[0]    = 31;        $m[1]    = 28;        $m[2]    = 31;        $m[3]    = 30;
      
$m[4]    = 31;        $m[5]    = 30;        $m[6]    = 31;        $m[7]    = 31;
      
$m[8]    = 30;        $m[9]    = 31;        $m[10]    = 30;        $m[11]    = 31;
      
//if leap year, february has 29 days
      
if (((date('Y',$totime)%4 == 0) && (date('Y',$totime)%100 != 0)) || (date('Y',$totime)%400 == 0)){

          
$m[1] = 29;
       }
      
$ret['months']        = 0;
       foreach(
$m as $value){
           if(
$ret['days']>$value){
              
$ret['months']++;
              
$ret['days'] -=$value;
           } else {
               break;
           }
       }
      
$ret['hours']    = intval($remain/(60*60));
      
$remain            = $remain%(60*60);
      
$ret['minutes']    = intval($remain/60);
      
$ret['seconds']    = $remain%60;
       return
$ret;
   }
?>

การหาโค๊ดเพื่อศึกษาลองอ่าน Online manual ของ php ครับจะมีการ discuss ในส่วนของ forum ข้างล่างฟังก์ชั่นนั้นๆครับ นำมาเป็นแรวทางการพัฒนาได้เยอะครับ
fatnomore
fatnomore
Thu 20 Apr 2006 17:59:10

ข้อสามใช้การแปลงเป็น timestamp จะหาจำนวนวันได้ง่ายกว่าครับ และไม่พลาดเรื่องปีไหนเดือน กพ มี 28 หรือ 29 วันด้วย โค๊ตก็สั้นกว่า


ิิ<?
     //สปลิส เอาวันเดือนปีไปใส่ใน array ก่อน
    $arr_bdate = split("/",$bdate);
    $arr_fdate = split("/",$fdate);

    //ทำให้เป็น timestamp ซึ่งจะได้เลขจำนวนเต็มที่สามารถลบกันได้
    $num_bdate = mktime(0, 0, 0, $arr_bdate[1] , $arr_bdate[0], $arr_bdate[2]);
    $num_fdate = mktime(0, 0, 0, $arr_fbdate[1] , $arr_bdate[0], $arr_bdate[2]);
    $diffnumdate = $num_fdate - $num_bdate;

    echo $diff_date = $diffnumdate/86400; //หารด้วย 86400 เพราะหนึ่งวันมี 60*60*24 วินาที
?>
   

Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login