Copyright © 2003-2010
By Suthep Sangvirotjanaphat
  Mobile: 089-967-2200, 081-915-7816
Phone: 0-2992-4877   Fax: 0-2992-4878
Fast Contact Us

GreatFriends.Biz Community

Custom Search
Copy เพื่ออ้างอิงถึงข้อความนี้:
 MESSAGE #6733 (อ่าน 6,800 ครั้ง)

ทำ นาฬิการจับเวลาใน vb.net

ทำ นาฬิการจับเวลาใน vb.net

คือดิฉันอยากจะจับเวลา การ loop ว่าใช้เวลาไปเท่าไรค่ะ ไม่ทราบว่าจะใช้คำสั่งยังไง

จากคุณ : nan -[ 10 ต.ค. 47 - 01:39:08 A:168.120.98.27 X: ]

(copy from: http://www.pantip.com/tech/developer/topic/DN1625477/DN1625477.html)


(nan) วันที่ส่ง: 9 ต.ค. 47 22:32 GMT+7
วันที่ปรับล่าสุด: 19 ธ.ค. 48 18:51 GMT+7
REPLY #1 (6735)
ใช้ Now.Ticks ครับ

Now.Ticks จะให้ค่าเป็นชนิด Long
มีความละเอียดในแต่ละ Tick เท่ากับ 100 nanoseconds
หรือ 10 ยกกำลัง -7 วินาที

Dim t1, t2 As Long

t1 = Now.Ticks

' ---- Do your code loop here.

t2 = Now.Ticks

Console.WriteLine("Elapsed {0:0.0000} seconds.", _
   (t2 - t1) / 10 ^ 7) ' ---- 1 ตามด้วยศูนย์ 7 ตัว


surrealist วันที่ส่ง: 9 ต.ค. 47 22:45 GMT+7
วันที่ปรับล่าสุด: 9 ต.ค. 47 22:45 GMT+7
REPLY #2 (6738)
อีกวิธีการหนึ่งในการแสดงถึงข้อมูลระยะเวลา
คือใช้ TimeSpan

TimeSpan เป็นคลาสในเนมสเปซ System
ดังนั้น เราจึงเรียกใช้ได้เลย เพราะเนมสเปซดังกล่าว
ถูก Imports โดยอัตโนมัติใน Visual Basic .Net อยู่แล้ว

TimeSpan เป็นคลาส ดังนั้นการใช้
ต้อง New อ๊อบเจ็กต์เสียก่อน เช่น

Dim interval As New TimeSpan(t2 - t1)

ตอน New ต้องส่งค่าอะไรบางอย่างให้กับ constructor ด้วย
ในตัวอย่างส่งจำนวน Ticks ไปให้
เมธอด ToString จะให้ผลลัพธ์ของ TimeSpan ในรูปแบบ

[-]d.hh:mm:ss.ff

d คือจำนวนวัน
hh คือ ชั่วโมง
mm คือ นาที
ss คือ วินาที
ff คือ เศษของวินาที

ถ้าระยะเวลาไม่ถึงวัน ส่วน d จะไม่ถูกแสดง

จากโค้ดข้างบน (Reply #1)
ถ้าใช้ TimeSpan ก็ไม่ต้องเอามาหารด้วย 10 ^ 7 เอง เช่น

...

Dim t As New TimeSpan(t2 -t1)
Console.WriteLine("Elapsed {0} seconds.", t.ToString)

หรือแบบสั้นๆ (ไว้ใจได้กา)
Console.WriteLine("Elapsed {0} seconds.", New TimeSpan(t2 - t1))


surrealist วันที่ส่ง: 10 ต.ค. 47 11:22 GMT+7
วันที่ปรับล่าสุด: 10 ต.ค. 47 11:22 GMT+7
REPLY #3 (13619)
Now.Ticks Now.Ticks จะให้ค่าเป็นชนิด Long มีความละเอียดในแต่ละ Tick เท่ากับ 100 nanoseconds หรือ 10 ยกกำลัง -7 วินาที หน่วนนาโน เป้น 10 กำลัง -9 ไม่ใช่หรือคะ


a วันที่ส่ง: 17 ธ.ค. 48 04:40 GMT+7
วันที่ปรับล่าสุด: 17 ธ.ค. 48 04:40 GMT+7
REPLY #4 (13621)
1 nanosecond คือ 1 x 10 ยกกำลัง -9 หรือ 1/1,000,000,000 วินาที
100 nanoseconds คือ 1/1,000,000,000 วินาที คูณด้วย 100
จึงเหลือ 1/10,000,000 หรือ 1 x 10 ยกกำลัง -7 ครับ


surrealist วันที่ส่ง: 17 ธ.ค. 48 07:04 GMT+7
วันที่ปรับล่าสุด: 17 ธ.ค. 48 07:04 GMT+7
REPLY #5 (13626)
แล้วตัวเลข hh:mm:ss.ffffff ของเศษของวินาที อ่านว่าอย่างไรคะ หน่วยอะไร
เช่น  3:12:24:936581


A วันที่ส่ง: 18 ธ.ค. 48 00:45 GMT+7
วันที่ปรับล่าสุด: 18 ธ.ค. 48 00:45 GMT+7
REPLY #6 (13627)
หน่วยย่อยของ second คือ milliseconds (มิลลิเซคคอนด์) ครับ
1 second = 1000 milliseconds.


Nine (นาย) วันที่ส่ง: 18 ธ.ค. 48 01:17 GMT+7
วันที่ปรับล่าสุด: 18 ธ.ค. 48 01:17 GMT+7
REPLY #7 (13628)
หน่วยของเลข 6 หรือ 7 ตัวหลัง อ่ะค่ะ ที่เป็น เศษของวินาที
936581

ตัวเลข hh:mm:ss.ffffff ของเศษของวินาที อ่านว่าอย่างไรคะ หน่วยอะไร
เช่น  3:12:24:936581


A วันที่ส่ง: 18 ธ.ค. 48 01:35 GMT+7
วันที่ปรับล่าสุด: 18 ธ.ค. 48 01:35 GMT+7
REPLY #8 (13650)
เศษของวินาที มีหน่วยได้หลายหน่วยครับ
.fff ที่กำหนดใน format string จะมี f กี่ตัวก็ได้
ขึ้นอยู่กับความต้องการของเรา (f ไม่เกินเจ็ดตัว)

ถ้ามี 3 ตัว เช่น .fff
เช่น 00:01:01.123
จะอ่านได้ว่า หนึ่งนาที หนึ่งวินาที และ หนึ่งร้อยยี่สิบสาม ส่วน หนึ่งพันวินาที

หรือ 123 milliseconds เพราะ 1 millisecond คือ 1 ส่วน 1,000


ถ้าเป็น .ffffff เป็นเลขหกหลัก เช่น .123000 วินาที
ก็อ่านว่า หนึ่งแสนสองหมื่นสามพัน ส่วน หนึ่งล้านวินาที

หรือ 123000 microseconds เพราะ 1 microsecond คือ 1 ส่วน 1,000,000


(f ย่อมาจาก fraction)


surrealist วันที่ส่ง: 19 ธ.ค. 48 05:59 GMT+7
วันที่ปรับล่าสุด: 19 ธ.ค. 48 05:59 GMT+7
REPLY #9 (13659)
123000 หน่วยคือ microseconds
แล้ว หากเป็น 1230001 ล่ะคะ เพราะ มีเลข 7 ตัว ใช่หน่วย microseconds ด้วยหรือเปล่า


A วันที่ส่ง: 19 ธ.ค. 48 18:51 GMT+7
วันที่ปรับล่าสุด: 19 ธ.ค. 48 18:51 GMT+7
กระทู้นี้มีอายุเกิน 365 วันแล้ว ท่านจะไม่สามารถตอบกระทู้นี้ได้อีก
ถ้าต้องการสนทนาต่อ กรุณาตั้งเป็นกระทู้ใหม่ได้ในหน้าโฮม
และอาจจะอ้างถึงกระทู้นี้ โดยก๊อปปี้ข้อความในกล่องสีขาวด้านล่างไปแปะในกระทู้ใหม่

copy เพื่ออ้างอิงถึงข้อความนี้:
ทำ นาฬิการจับเวลาใน vb.net
http://greatfriends.biz?6733


17 เม.ย. 01:57
Online: 216