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,037

HOME > Client Script Forum > ต้องการแนวคิดเกี่ยวกับวันหยุดครับ โดยที่ถ้าหยุดวันจันทร์ถึงวันศุกร์ = หยุด6วัน แต่ถ้าหยุดไม่ถึงก็คิดตามปกติครับ



 

ต้องการแนวคิดเกี่ยวกับวันหยุดครับ โดยที่ถ้าหยุดวันจันทร์ถึงวันศุกร์ = หยุด6วัน แต่ถ้าหยุดไม่ถึงก็คิดตามปกติครับ

 



Topic : 125059



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



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




เช่นยกตัวอย่างแรก startdate = 10 /10/2016 ถึง enddate 14/10/2016 = ผมหยุดไป6วัน
หรือ startdate =10/10/2016 ถึง enddate 21/10/2016 = ผมหยุดไป12วัน
แต่ถ้าผมหยุด startdate=14/10/2016 ถึง enddate 20/10/2016 = ผมหยุด5วัน

พูดง่ายๆคือถ้ามีการคร่อมวันตั้งแต่จันทร์ ถึง ศุกร์ จะนับเป็น 6วัน กรณีเดียว นอกนั้นนับปกติครับ
ผมรับวันที่เข้ามา2 ค่า คือ StartDate & EndDate

code ผมทำให้มันหยุดปกติได้ คือไม่นับเสาร์อาทิตย์ ผมอยากรู้วิธีคิดที่ถ้าหยุดวันจันทร์ถึงศุกร์ ต้องcount เพิ่มอีกหนึ่ง
โดยที่ถ้าหยุดกี่สัปดาห์ก็ตาม แต่ถ้าเป็นวันจันทร์ถึงศุกร์แล้วจะมีค่า+เพิ่ม1หมดตามสัปดาห์นั้นๆ งงไหมครับถ้าอธิบายงงขอโทษด้วย
Code (JavaScript)
<SCRIPT language="javascript">
function DateDriff()
{
var diff;
var start = new Array(3);
var end = new Array(3);
var st = document.getElementById('datestart').value;
var en = document.getElementById('dateend').value;
var weekendDayCount = 0;
var spacday = 0;
//Thai DateFormat 15/08/2552 - DD/MM/YYYY
//Split Start -> Date/Month/Year
start[0] = st.substr(0,2);
start[1] = st.substr(3,2);
start[2] = st.substr(6,4);
//Split End -> Date/Month/Year
end[0] = en.substr(0,2);
end[1] = en.substr(3,2);
end[2] = en.substr(6,4);
end[1] -= 1;
start[1] -= 1;
StratDate = new Date( ); 
EndDate = new Date( );
StratDate.setDate(start[0]); 
StratDate.setMonth(start[1]); 
StratDate.setFullYear(start[2]);
EndDate.setDate(end[0]); 
EndDate.setMonth(end[1]); 
EndDate.setFullYear(end[2])
if(StratDate.getTime( ) <= EndDate.getTime( ))
{
if(EndDate.getTime( ) == StratDate.getTime( ))
{
diff = "1";
}
else {
diff = EndDate.getTime( ) - StratDate.getTime( );
diff = Math.floor(diff / (1000 * 60 * 60 * 24))+1;
var vark= StratDate.getDay();
for(cc=StratDate;cc<=EndDate;StratDate.setDate(StratDate.getDate() + 1))
{
if(StratDate.getDay() === 0 || StratDate.getDay() === 6)
{
++spacday ;
}
}
// while(StratDate < EndDate){
// StratDate.setDate(StratDate.getDate() + 1);
// if(StratDate.getDay() === 0 || StratDate.getDay() === 6)
// {
// ++weekendDayCount ;
// }
// }
}
}
else if(EndDate.getTime( ) < StratDate.getTime( ))
{
diff = "0";
}

if(diff==undefined)
document.getElementById("tmdiff").value = "";
else
//document.getElementById("tmdiff").value = diff-weekendDayCount;
document.getElementById("tmdiff").value = diff-spacday;
}
</SCRIPT>




Tag : MySQL, HTML/CSS, JavaScript







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-10-21 17:12:43 By : blackrain View : 992 Reply : 4
 

 

No. 1



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



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


ไม่มีใครมาตอบเลยเหรอครับ T_T






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-22 12:41:05 By : blackrain
 


 

No. 2



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



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


วิธีการคำนวณ
1 หาสัปดาห์เริ่มต้น
2 หาสัปดาห์สุดท้าย
3 หาจำนวนสัปดาห์ที่คาบเกี่ยวทั้งหมด
เช่น เริ่มวันอังคาร สัปดาหที่ 1 สินสุดวัน พฤหัสสัปดาห์ที่ 2 นับเป็น 2 สัปดาห์
4 ถ้า (วันของสัปดาห์เริ่มต้น ไม่เท่ากับสัปดาห์สุดท้าย) และ (มากกว่าวันจันทร์) คือ วันอังคารถึงศุกร์ เอาจำนวนสัปดาห์คาบเกี่ยว -1
5 ถ้าวันของสัปดาห์สุดท้าย น้อยกว่า วันศุกร์ คือ วันจันท์ ถึงพฤหัส เอาจำนวนสัปดาห์คาบเกี่ยว -1
6 เอาสัปดาห์คาบเกี่ยวที่เหลือ คูณ 6 เป็นจำนวนวัน (ของสัปดาห์เต็ม)
7ถ้าสัปดาห์เริ่มต้น มากกว่าวันจันทร์ เอาจำนวนวัน + (วันในสัปดาห - วันของสัปดาห์เริ่มต้น)
เช่นวัน อังคาร ก็จะเท่ากับ 7 - 3 คือ 4 อังคาร พุธ พฤหัส ศุกร์
8 ถ้าสัปดาห์สุดท้าย น้อยกว่าวันศุกร์ เอาจำนวนวัน + (วันในสัปดาห - 1)
เช่นวัน พฤหัส ก็จะเท่ากับ 5 - 1 คือ 4 จันท์ อังคาร พุธ พฤหัส
9 ถ้าสัปดาห์เริ่มต้น สัปดาห์สุดท้าย เป็นสัปดาห์เดียวกัน เอาจำนวนวัน - 5

ตัวอย่าง เริ่มวัน อังคาร ถีงวัน พฤหัสสัปดาห์เดียวกัน อักคาร พุธ พฤหัส
ใส่สูตร
1 สัปดาห์ที่ 1
2 สัปดาห์ที่ 1
3 1 สัปดาห์
4 1 - 0 = 1
5 1 - 1 = 0
6 0 * 6 = 0 วัน
7 0 + (7 - 3) = 4
8 4 + (5 - 1) = 8
9 8 - 5 = 3

ตัวอย่าง เริ่มวัน ศุกร์สัปดาห์ที่ 1 ถีงวัน จันทร์ สัปดาห์ที่ 3
ใส่สูตร
1 สัปดาห์ที่ 1
2 สัปดาห์ที่ 3
3 3 สัปดาห์
4 3 - 1 = 2
5 2 - 1 = 1
6 1 * 6 = 6 วัน
7 6 + (7-6) = 7
8 7 + (2-1) = 8
9 8 - 0 = 8

เขียนโค๊ดเอาเองนะครับ


ประวัติการแก้ไข
2016-10-22 14:30:26
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-22 14:28:51 By : Chaidhanan
 

 

No. 3

Guest


ขอบคุณมากครับ พอเข้าใจที่พี่บอกแล้วแต่ยังไม่ได้ลองเขียนครับพอดีไม่สบาย ขอบคุณมากนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-22 19:42:42 By : Blackrain
 


 

No. 4



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



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


ผมกลับมาบอกว่าผมได้แล้วนะครับ จากแนวคิด พี่Chaidhanan แล้วดัดแปลงเองอีกนิดหน่อย ขอบคุณมากครับ(หายไป2วันไม่สบายเพิ่งได้เขียนครับ)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-25 22:53:15 By : blackrain
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ต้องการแนวคิดเกี่ยวกับวันหยุดครับ โดยที่ถ้าหยุดวันจันทร์ถึงวันศุกร์ = หยุด6วัน แต่ถ้าหยุดไม่ถึงก็คิดตามปกติครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 04
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 อัตราราคา คลิกที่นี่