Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > รบกวนช่วยหา code สำหรับตรวจสอบเวลาว่างในตารางการทำงาน



 

รบกวนช่วยหา code สำหรับตรวจสอบเวลาว่างในตารางการทำงาน

 



Topic : 048741

Guest




ต้องการตรวจสอบเวลาว่างในตารางการทำงานจะคิดยังไง
สมมติว่าเข้างาน 9:00 - 20:00 น.

ตารางการทำงาน
เริ่มต้น สิ้นสุด
10:00 11:00
12:00 13:00
14:00 14:30
15:00 16:00
18:00 18:30

ต้องการให้ Output ออกมาแบบนี้
ตารางว่าง
เริ่มต้น สิ้นสุด
09:00 10:00
11:00 12:00
13:00 14:00
14:30 15:00
16:00 18:00
18:30 20:00

วนลูปจนเบลอ...



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-09-14 13:03:48 By : P View : 1097 Reply : 9
 

 

No. 1



โพสกระทู้ ( 1,751 )
บทความ ( 0 )



สถานะออฟไลน์


ขอให้อธิบายอีกสักนิดครับมะเข้าใจคำถามครับ งง เช็คอะไรอะ แล้วเช็คแบบไหนครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-14 14:06:13 By : SOUL
 


 

No. 2



โพสกระทู้ ( 1,268 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Blogger

data เป็นยังไงคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-14 15:00:09 By : ultrasiam
 

 

No. 3

Guest


เป็นการมอบหมายงานให้พนักงาน ซึ่งแต่ละงานใช้เวลาไม่เท่ากัน ดังนั้นจะต้องดูตารางการทำงานของพนักงานก่อนว่าว่างเวลาไหน
เช่น มีงานเข้ามาเวลา 9:30 น. ซึ่งใช้เวลา 45 นาที จะมอบหมายงานให้พนักงานA
ดังนั้นต้องไปตรวจสอบว่าพนักงาน A จะเริ่มทำงานนี้ได้กี่โมง จากตารางการทำงานของพนักงานA

ตารางการทำงานของพนักงานA
เริ่มต้น สิ้นสุด
10:00 11:00
12:00 13:00
14:00 14:30
15:00 16:00
18:00 18:30

แล้วมาตรวจสอบว่าพนักงานA มีเวลาว่างช่วงไหน และว่างกี่นาที เปรียบเทียบกับเวลาที่งานที่เข้ามาใช้ คือ 45 นาที
ตารางว่าง(คำนวณหามาจากตารางการทำงาน***แต่ยังคำนวณไม่ได้)
เริ่มต้น สิ้นสุด เวลาว่าง(นาที) ผล
09:30 10:00 30 X
11:00 12:00 60 /
13:00 14:00 60 /
14:30 15:00 30 X
16:00 18:00 120 /
18:30 20:00 90 /

จากนั้นก็เลือกเวลา 11:00-11:45 (งานใหม่ใช้เวลา 45 นาที) แล้วบันทึกเวลาสำหรับงานใหม่ที่เข้ามาลงในตารางการทำงาน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-14 23:44:28 By : P
 


 

No. 4

Guest


จากนั้นก็เลือกเวลา 11:00-11:45 (งานใหม่ใช้เวลา 45 นาที) ทำไมเลือก 11:00 - 11:45 ทำไมไม่เลือก 13:00 14:00 , 16:00 18:00,
18:30 20:00 คือที่จะถามมีหลักเกณฑ์ไหน ในการเลือกเวลาช่วงไหนครับ


คือไม่รู้ว่าตรงกับคำถามหรือเปล่านะครับ

คือต้องหาเวลาแต่ละช่วงในการทำงานของเขาก่อน ยกตัวอย่างง่ายๆ นะ

start end
09:30 10:00 ((substr(end,0,2)*60)+substr(end,3,2)) - ((substr(start,0,2)*60)+substr(start,3,2))
อันนี้ก็จะได้เวลาเป็นนาทีของ end ในแต่ละช่วง
11:00 12:00
13:00 14:00
14:30 15:00
16:00 18:00
18:30 20:00

สุดท้ายรับค่า งานใหม่ที่เข้ามาว่ากี่นาที เช่น 45 นาที ให้เป็นตัวแปร new1 = 45 และกันนะ


if( new1 <= ช่วงเวลาที่คำนวนได้ ){


}else{

}


ไม่รู้ถูกผิดประการใดนะครับ แต่่ตั้งใจจะช่วย ถ้าไม่ถูกยังไงเทพท่านอื่น ช่วยตอบด้วยนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-15 02:05:05 By : t
 


 

No. 5

Guest


ขอบคุณนะคะ เกณฑ์ที่จะใช้เลือกช่วงเวลาว่างก็คือ หาช่วงเวลาว่างที่สามารถรับงานใหม่ที่เข้ามาก่อน
แต่ปัญหาคือ หาเวลาว่างจากตารางการทำงานไม่เป็นอ่ะค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-15 18:48:20 By : P
 


 

No. 6

Guest


ลองเขียนแล้วไม่ออกอย่างที่ต้องการค่ะ ช่วยดูด้วยนะคะ

สมมติงานเข้ามาใช้เวลาปัจจุบัน ตัวอย่างจะเป็นเวลา 08:08:10 น.
ตารางการทำงาน
เริ่มต้น สิ้นสุด
10:00 11:00
12:00 13:00
14:00 14:30
15:00 16:00
18:00 18:30

Code (PHP)
$sql = "select * from employeeschedule a  where  (StartTime>=now() or (StartTime<now() and EndTime>=now()))  and EmpID='00001' order by StartTime ";
$rs = mysql_query($sql); 
$j=0;
while($row = mysql_fetch_assoc($rs)){  
	$schedule_empid = $row['EmpID'];
	$schedule_start[$j]=$row['StartTime'];
	$schedule_end[$j]=$row['EndTime'];
	$j=$j+1;
}
for($k=0;$k<$j;$k++)
{
	if($k==0)//ตรวจสอบว่าเป็น record แรกรึป่าว
	{
		$temp_schedulestart=$schedule_start[$k];
		$temp_scheduleend=$schedule_end[$k];
		$arrivedate = date("Y-m-d H:i:s", mktime(date("H"), date("i")+0, date("s")+0));
		if($arrivedate<=$temp_schedulestart)
		{
			$st = $arrivedate;
			$et = $temp_schedulestart;
			echo "Start1 =".$st."........"."Stop = ".$et." Status = ว่าง<br>";
		}
		else
		{
			echo "Start1=".$temp_schedulestart."........"."Stop = ".$temp_scheduleend." Status = ไม่ว่าง<br>";
		}
	}
	else if($k<>0)//กรณีไม่ใช่ record แรก
	{
for($i=0;$i<=$k;$i++)
{
	$temp_beforestart=$schedule_start[$i];
	$temp_beforeend=$schedule_end[$i];
	$temp_schedulestart=$schedule_start[$k];
	$temp_scheduleend=$schedule_end[$k];
	if($temp_beforeend<=$temp_schedulestart )
	{
		$st = $temp_beforeend;
		$et = $temp_schedulestart;
		echo "Start2 =".$st."........"."Stop = ".$et." Status = ว่าง<br>";
	}
	else
	{
		echo "Start3 =".$temp_schedulestart."........"."Stop = ".$temp_scheduleend." Status = ไม่ว่าง<br>";
	}
}
}
}



ซึ่ง Output ออกมาเป็น
[color=red]Start1 =2010-09-16 08:08:10........Stop = 2010-09-16 10:00:00 Status = ว่างStart2 =2010-09-16 11:00:00........Stop = 2010-09-16 12:00:00 Status = ว่าง[/color]Start3 =2010-09-16 12:00:00........Stop = 2010-09-16 13:00:00 Status = ไม่ว่าง
Start2 =2010-09-16 11:00:00........Stop = 2010-09-16 14:00:00 Status = ว่าง
Start2 =2010-09-16 13:00:00........Stop = 2010-09-16 14:00:00 Status = ว่าง
Start3 =2010-09-16 14:00:00........Stop = 2010-09-16 14:30:00 Status = ไม่ว่าง
Start2 =2010-09-16 11:00:00........Stop = 2010-09-16 15:00:00 Status = ว่าง
Start2 =2010-09-16 13:00:00........Stop = 2010-09-16 15:00:00 Status = ว่าง
Start2 =2010-09-16 14:30:00........Stop = 2010-09-16 15:00:00 Status = ว่างStart3 =2010-09-16 15:00:00........Stop = 2010-09-16 16:00:00 Status = ไม่ว่าง
Start2 =2010-09-16 11:00:00........Stop = 2010-09-16 18:00:00 Status = ว่าง
Start2 =2010-09-16 13:00:00........Stop = 2010-09-16 18:00:00 Status = ว่าง
Start2 =2010-09-16 14:30:00........Stop = 2010-09-16 18:00:00 Status = ว่าง
Start2 =2010-09-16 16:00:00........Stop = 2010-09-16 18:00:00 Status = ว่างStart3 =2010-09-16 18:00:00........Stop = 2010-09-16 18:30:00 Status = ไม่ว่าง

แต่เวลาว่างที่ถูกต้องเป็นตัวสีน้ำเงินอ่ะค่ะ รบกวนช่วยดูด้วยนะคะ ว่าต้องแก้ไขตรงไหน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-16 08:05:20 By : P
 


 

No. 7

Guest


อธิบาย Output ใหม่นะคะ

แต่เวลาว่างที่ถูกต้องเป็นตัวสีน้ำเงินอ่ะค่ะ รบกวนช่วยดูด้วยนะคะ ว่าต้องแก้ไขตรงไหน

Start1 =2010-09-16 08:08:10........Stop = 2010-09-16 10:00:00 Status = ว่าง
Start2 =2010-09-16 11:00:00........Stop = 2010-09-16 12:00:00 Status = ว่าง
Start3 =2010-09-16 12:00:00........Stop = 2010-09-16 13:00:00 Status = ไม่ว่าง
Start2 =2010-09-16 11:00:00........Stop = 2010-09-16 14:00:00 Status = ว่าง
Start2 =2010-09-16 13:00:00........Stop = 2010-09-16 14:00:00 Status = ว่าง
Start3 =2010-09-16 14:00:00........Stop = 2010-09-16 14:30:00 Status = ไม่ว่าง
Start2 =2010-09-16 11:00:00........Stop = 2010-09-16 15:00:00 Status = ว่าง
Start2 =2010-09-16 13:00:00........Stop = 2010-09-16 15:00:00 Status = ว่าง
Start2 =2010-09-16 14:30:00........Stop = 2010-09-16 15:00:00 Status = ว่าง
Start3 =2010-09-16 15:00:00........Stop = 2010-09-16 16:00:00 Status = ไม่ว่าง
Start2 =2010-09-16 11:00:00........Stop = 2010-09-16 18:00:00 Status = ว่าง
Start2 =2010-09-16 13:00:00........Stop = 2010-09-16 18:00:00 Status = ว่าง
Start2 =2010-09-16 14:30:00........Stop = 2010-09-16 18:00:00 Status = ว่าง
Start2 =2010-09-16 16:00:00........Stop = 2010-09-16 18:00:00 Status = ว่าง
Start3 =2010-09-16 18:00:00........Stop = 2010-09-16 18:30:00 Status = ไม่ว่าง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-16 08:08:26 By : P
 


 

No. 8

Guest


รบกวนด้วยนะคะ งานด่วนจริงๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-16 19:52:33 By : P
 


 

No. 9

Guest


อันนี้ต้องดู ต้วอย่างการเก็บตารางเวลาในฐานข้อมูลด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-17 13:21:31 By : t
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนช่วยหา code สำหรับตรวจสอบเวลาว่างในตารางการทำงาน
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่