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 > .NET Framework > Forum > สอบถามการรวมชั่วโมงที่เกิน 24 ชั่วโมงขึ้นไปไม่สามารถรวมได้



 

สอบถามการรวมชั่วโมงที่เกิน 24 ชั่วโมงขึ้นไปไม่สามารถรวมได้

 



Topic : 132228



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



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




เวลารวมชั่วโมงโอทีของพนักงานที่ทำโอทีเกิน 24 ชั่วโมง ทำมัยถึงรวมไม่ได้ล่ะครับ เช่น พนักงาน ก. ทำโอทั้งหมด 30 ชั่วโมง แต่โปรแกรมจะรวมชั่วโมงให้แค่ 6 ชั่วโมง ส่วน 24 ชั่วโมงเค้าตัดออกเลยครับ แต่ถ้าคนไหนที่ไม่ถึง 24 ชั่วโมงก็จะรวมได้ปรกติครับ ต้องแก้ไขหรือเพิ่มเติมโค๊ดส่วนไหนครับ

อันนี้โค๊ดครับ
Public Sub sumot()

Dim myCompareTime As DateTime = DateTime.Parse("00:15:00")
Dim iCount As Integer = 0
Dim stringTotalTime As String = String.Empty
Dim myDgvTime As TimeSpan = New TimeSpan(0, 0, 0)
Dim stringDetail As String = String.Empty
Dim stringOt As String = String.Empty
Dim allItemCount As Integer = 0

For iRow As Integer = 0 To dgvTimework.Rows.Count - 1

If Not IsDBNull(dgvTimework.Rows(iRow).Cells("ot").Value) And Not IsDBNull(dgvTimework.Rows(iRow).Cells("ot").Value) Then

allItemCount += 1

Dim dgvTimeString = CType(dgvTimework.Rows(iRow).Cells("ot").Value, String)

stringDetail &= CType(dgvTimework.Rows(iRow).Cells("ot").Value, String) & vbNewLine

Dim dgvTime As DateTime

If DateTime.TryParse(dgvTimeString, dgvTime) Then

If dgvTime > myCompareTime Then

stringOt &= dgvTimeString & vbNewLine

Dim eachRow As TimeSpan = New TimeSpan(Hour(dgvTime), Minute(dgvTime), Second(dgvTime))

myDgvTime += eachRow

iCount += 1

End If

Else

MsgBox("Error: Unable to parse " & dgvTimeString)

End If

End If

Next iRow

txtOt.Text = myDgvTime.ToString("hh\:mm")
txtCountot.Text = iCount

End Sub

2222



Tag : .NET, Ms SQL Server 2008, VB.NET, C#, VS 2015 (.NET 4.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-10-04 12:01:13 By : Tikzaa View : 735 Reply : 9
 

 

No. 1



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

โค้ดตรงส่วนไหนที่ว่า เป็นการหาผลต่างของ 2 เวลาครับ พอดีอ่านแล้วหาไม่เจอ(สงสัยจะแก่แล้วจริงๆ 5555)






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-10-04 17:46:42 By : lamaka.tor
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : lamaka.tor เมื่อวันที่ 2018-10-04 17:46:42
รายละเอียดของการตอบ ::
ผมใช้วิธีนับจำนวนวันที่มีโอทีใน datagrid อ่ะครับแล้วเอามารวมกันครับ แต่คนที่เกิน 24 ชั่วโมงจะ ไม่รวมให้ครับ จะนับเศษที่เกิน 24 ชั่วโมงเท่านั้น ต้องแก้อย่างงัยดีครับ


6636
99663
3636

ผมรวมจะมาโชวที่ texbox นี้ กับจำนวนวันที่ทำครับ

txtOt.Text = myDgvTime.ToString("hh\:mm")
txtCountot.Text = iCount


78592


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-10-05 09:21:46 By : Tikzaa
 

 

No. 3



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



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


ลองแก้ไขตามนี้ดูนะครับ ว่าได้หรือเปล่า
Public Sub sumot()

Dim myCompareTime As DateTime = DateTime.Parse("00:15:00")
Dim iCount As Integer = 0
Dim stringTotalTime As String = String.Empty
Dim myDgvTime As TimeSpan = New TimeSpan(0, 0, 0)
Dim stringDetail As String = String.Empty
Dim stringOt As String = String.Empty
Dim allItemCount As Integer = 0

For iRow As Integer = 0 To dgvTimework.Rows.Count - 1

If Not IsDBNull(dgvTimework.Rows(iRow).Cells("ot").Value) And Not IsDBNull(dgvTimework.Rows(iRow).Cells("ot").Value) Then

allItemCount += 1

Dim dgvTimeString = CType(dgvTimework.Rows(iRow).Cells("ot").Value, String)

stringDetail &= CType(dgvTimework.Rows(iRow).Cells("ot").Value, String) & vbNewLine

Dim dgvTime As DateTime
Dim tspTotal as new TimeSpan 'ลองเพิ่มโค้ดนี้นะครับ

If DateTime.TryParse(dgvTimeString, dgvTime) Then

If dgvTime > myCompareTime Then

stringOt &= dgvTimeString & vbNewLine

Dim eachRow As TimeSpan = New TimeSpan(Hour(dgvTime), Minute(dgvTime), Second(dgvTime))

tspTotal += eachRow 'ลองเปลี่ยนเป็นโค้ดนี้นะครับ

iCount += 1

End If

Else

MsgBox("Error: Unable to parse " & dgvTimeString)

End If

End If

Next iRow

Diim iTotalDay_OT as integer = tspTotal.TotalDay 'เก็บจำนวนวันที่ทำโอที
Dim iHour_OT as integer = tspTotal.Hour 'เก็บจำนวนชั่วโมง
Dim iMinute_OT as integer = tspTotal.Minute 'เก็บจำนวนนาที

txtCountot.Text = iTotalDay_OT.ToString
txtOt.Text = iHour_OT.ToString("00") + ":" + iMinute_OT.ToString("00")

End Sub
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-10-05 09:47:48 By : Rashun
 


 

No. 4



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



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


ตอบความคิดเห็นที่ : 3 เขียนโดย : Rashun เมื่อวันที่ 2018-10-05 09:47:48
รายละเอียดของการตอบ ::

errer ตัวที่เราประกาศใหม่ครับ
3258


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-10-05 10:22:31 By : Tikzaa
 


 

No. 5

Guest


ตอบความคิดเห็นที่ : 4 เขียนโดย : Tikzaa เมื่อวันที่ 2018-10-05 10:22:31
รายละเอียดของการตอบ ::
ประกาศตัวแปร tspTotal หรือยังครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-10-05 10:50:16 By : R1
 


 

No. 6



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



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


ตอบความคิดเห็นที่ : 5 เขียนโดย : R1 เมื่อวันที่ 2018-10-05 10:50:16
รายละเอียดของการตอบ ::
ประกาศไปแล้วครับ
75214


Dim myCompareTime As DateTime = DateTime.Parse("00:15:00")
Dim iCount As Integer = 0
Dim stringTotalTime As String = String.Empty
Dim myDgvTime As TimeSpan = New TimeSpan(0, 0, 0)
Dim stringDetail As String = String.Empty
Dim stringOt As String = String.Empty
Dim allItemCount As Integer = 0

For iRow As Integer = 0 To dgvTimework.Rows.Count - 1

If Not IsDBNull(dgvTimework.Rows(iRow).Cells("ot").Value) And Not IsDBNull(dgvTimework.Rows(iRow).Cells("ot").Value) Then

allItemCount += 1

Dim dgvTimeString = CType(dgvTimework.Rows(iRow).Cells("ot").Value, String)

stringDetail &= CType(dgvTimework.Rows(iRow).Cells("ot").Value, String) & vbNewLine

Dim dgvTime As DateTime

Dim tspTotal As New TimeSpan 'ลองเพิ่มโค้ดนี้นะครับ

If DateTime.TryParse(dgvTimeString, dgvTime) Then

If dgvTime > myCompareTime Then

stringOt &= dgvTimeString & vbNewLine

Dim eachRow As TimeSpan = New TimeSpan(Hour(dgvTime), Minute(dgvTime), Second(dgvTime))

tspTotal += eachRow 'ลองเปลี่ยนเป็นโค้ดนี้นะครับ

iCount += 1

End If

Else

MsgBox("Error: Unable to parse " & dgvTimeString)

End If

End If

Next iRow

Dim iTotalDay_OT As Integer = tspTotal.TotalDay 'เก็บจำนวนวันที่ทำโอที
Dim iHour_OT As Integer = tspTotal.Hour 'เก็บจำนวนชั่วโมง
Dim iMinute_OT As Integer = tspTotal.Minute 'เก็บจำนวนนาที

txtCountot.Text = iTotalDay_OT.ToString
txtOt.Text = iHour_OT.ToString("00") + ":" + iMinute_OT.ToString("00")

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-10-05 10:52:26 By : Tikzaa
 


 

No. 7



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



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


Public Sub sumot()

Dim myCompareTime As DateTime = DateTime.Parse("00:15:00")
Dim iCount As Integer = 0
Dim stringTotalTime As String = String.Empty
Dim myDgvTime As TimeSpan = New TimeSpan(0, 0, 0)
Dim stringDetail As String = String.Empty
Dim stringOt As String = String.Empty
Dim allItemCount As Integer = 0
Dim tspTotal as new TimeSpan 'ต้องประกาศตัวแปรให้อยู่นอกตัววนลูปครับ (ขอโทษด้วยไม่ทันได้ดูครับ แฮ่ๆ)

For iRow As Integer = 0 To dgvTimework.Rows.Count - 1

If Not IsDBNull(dgvTimework.Rows(iRow).Cells("ot").Value) And Not IsDBNull(dgvTimework.Rows(iRow).Cells("ot").Value) Then

allItemCount += 1

Dim dgvTimeString = CType(dgvTimework.Rows(iRow).Cells("ot").Value, String)

stringDetail &= CType(dgvTimework.Rows(iRow).Cells("ot").Value, String) & vbNewLine

Dim dgvTime As DateTime
'Dim tspTotal as new TimeSpan 'เอาบรรทัดนี้ออกครับ ย้ายไปอยู่ด้านบนครับ

If DateTime.TryParse(dgvTimeString, dgvTime) Then

If dgvTime > myCompareTime Then

stringOt &= dgvTimeString & vbNewLine

Dim eachRow As TimeSpan = New TimeSpan(Hour(dgvTime), Minute(dgvTime), Second(dgvTime))

tspTotal += eachRow 'ลองเปลี่ยนเป็นโค้ดนี้นะครับ

iCount += 1

End If

Else

MsgBox("Error: Unable to parse " & dgvTimeString)

End If

End If

Next iRow

Diim iTotalDay_OT as integer = tspTotal.TotalDay 'เก็บจำนวนวันที่ทำโอที
Dim iHour_OT as integer = tspTotal.Hour 'เก็บจำนวนชั่วโมง
Dim iMinute_OT as integer = tspTotal.Minute 'เก็บจำนวนนาที

txtCountot.Text = iTotalDay_OT.ToString
txtOt.Text = iHour_OT.ToString("00") + ":" + iMinute_OT.ToString("00")

End Sub
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-10-05 17:59:56 By : Rashun
 


 

No. 8



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



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


ตอบความคิดเห็นที่ : 7 เขียนโดย : Rashun เมื่อวันที่ 2018-10-05 17:59:56
รายละเอียดของการตอบ ::

ไม่หายครับ errer อะรัยเอ่ย หาไม่เจออ่ะครับ

9456
3259



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-10-06 09:22:47 By : Tikzaa
 


 

No. 9



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



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


ตอบความคิดเห็นที่ : 7 เขียนโดย : Rashun เมื่อวันที่ 2018-10-05 17:59:56
รายละเอียดของการตอบ ::
ผมแก้ได้แล้วครับ ขอบคุณมากๆ เลยครับ รวมได้แล้วครับ

Public Sub sumot()

Dim myCompareTime As DateTime = DateTime.Parse("00:15:00")

Dim iCount As Integer = 0

Dim stringTotalTime As String = String.Empty

Dim myDgvTime As TimeSpan = New TimeSpan(0, 0, 0)

Dim stringDetail As String = String.Empty

Dim stringOt As String = String.Empty

Dim allItemCount As Integer = 0

For iRow As Integer = 0 To dgvTimework.Rows.Count - 1

If Not IsDBNull(dgvTimework.Rows(iRow).Cells("ot").Value) And Not IsDBNull(dgvTimework.Rows(iRow).Cells("ot").Value) Then

allItemCount += 1

Dim dgvTimeString = CType(dgvTimework.Rows(iRow).Cells("ot").Value, String)

stringDetail &= CType(dgvTimework.Rows(iRow).Cells("ot").Value, String) & vbNewLine

Dim dgvTime As DateTime

If DateTime.TryParse(dgvTimeString, dgvTime) Then

If dgvTime > myCompareTime Then

stringOt &= dgvTimeString & vbNewLine

Dim eachRow As TimeSpan = New TimeSpan(Hour(dgvTime), Minute(dgvTime), Second(dgvTime))

myDgvTime += eachRow

iCount += 1

End If

Else

MsgBox("Error: Unable to parse " & dgvTimeString)

End If

End If

Next iRow

Dim iHour_OT As Integer = myDgvTime.TotalHours 'เก็บจำนวนชั่วโมง
Dim iMinute_OT As Integer = myDgvTime.Minutes 'เก็บจำนวนนาที

txtOt.Text = iHour_OT.ToString("00") + ":" + iMinute_OT.ToString("00")
txtCountot.Text = iCount

End Sub

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-10-06 09:50:11 By : Tikzaa
 

   

ค้นหาข้อมูล


   
 

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