精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳細介紹下C/C++時間相關的那些函數

開發 后端
chrono是一個關于時間的庫,起源于boost,現在是C++的標準,話說現在的C++標準好多都是源于boost,要進標準的特性似乎都會先在boost試驗一番。

[[344240]]

本文轉載自微信公眾號「程序喵大人」,作者程序喵大人。轉載本文請聯系程序喵大人公眾號。  

大家平時工作,如果有計算函數耗時或者打印當前時間的需求,一定要來看看這篇文章!

首先介紹下C++標準中的chrono庫

chrono是一個關于時間的庫,起源于boost,現在是C++的標準,話說現在的C++標準好多都是源于boost,要進標準的特性似乎都會先在boost試驗一番。

首先看一下使用chrono簡單計時的示例代碼:

  1. void func() {  // 計時 
  2.    std::chrono::time_point<std::chrono::high_resolution_clock> begin = high_resolution_clock::now(); 
  3.    std::this_thread::sleep_for(std::chrono::milliseconds(20)); 
  4.    auto end = high_resolution_clock::now(); 
  5.    cout << "time " << duration_cast<milliseconds>(end - begin).count() << endl; 

chrono中有三個概念duration、time_point、clock

duration:表示一段時間,三分鐘、三秒等,它的定義如下:

  1. template <class _Rep, class _Period = ratio<1>> class duration; 

ratio的定義如下:

  1. template <intmax_t N, intmax_t D = 1> class ratio; 

Rep表示數據類型,int,long等,Period表示時間單位,N是分子,D是分母,直接看例子吧:

  1. using atto  = ratio<1, 1000000000000000000LL>; 
  2. using femto = ratio<1, 1000000000000000LL>; 
  3. using pico  = ratio<1, 1000000000000LL>; 
  4. using nano  = ratio<1, 1000000000>; 
  5. using micro = ratio<1, 1000000>; 
  6. using milli = ratio<1, 1000>; 
  7. using centi = ratio<1, 100>; 
  8. using deci  = ratio<1, 10>; 
  9. using deca  = ratio<10, 1>; 
  10. using hecto = ratio<100, 1>; 
  11. using kilo  = ratio<1000, 1>; 
  12. using mega  = ratio<1000000, 1>; 
  13. using giga  = ratio<1000000000, 1>; 
  14. using tera  = ratio<1000000000000LL, 1>; 
  15. using peta  = ratio<1000000000000000LL, 1>; 
  16. using exa   = ratio<1000000000000000000LL, 1>; 
  17.  
  18. using nanoseconds  = duration<long long, nano>; 
  19. using microseconds = duration<long long, micro>; 
  20. using milliseconds = duration<long long, milli>; 
  21. using seconds      = duration<long long>; 
  22. using minutes      = duration<int, ratio<60>>; 
  23. using hours        = duration<int, ratio<3600>>; 
  24.  
  25. using hours2       = duration<int, ratio<3600, 1>>; 
  26. using hours2       = duration<int, ratio<7200, 2>>; 

詳細看完上述例子您也明白了,ratio的默認的時間單位是1秒,以小時為例,一小時等于3600秒,3600 / 1 == 7200 / 2 == 3600,所以hours == hours2 == hours3。

標準庫還提供了duration_cast用于轉換各種duration。

  1. template <class _To, class _Rep, class _Period, enable_if_t<_Is_duration_v<_To>, int> = 0> 
  2.    constexpr _To duration_cast(const duration<_Rep, _Period>&) noexcept( 
  3.    is_arithmetic_v<_Rep>&& is_arithmetic_v<typename _To::rep>); 
  4.  
  5. template <class _Ty> 
  6.    _INLINE_VAR constexpr bool _Is_duration_v = _Is_specialization_v<_Ty, duration>; 
  7.  
  8. template <class _Ty> 
  9. _INLINE_VAR constexpr bool is_arithmetic_v = // determine whether _Ty is an arithmetic type 
  10.    is_integral_v<_Ty> || is_floating_point_v<_Ty>; 

函數看著很繁瑣,直接看看示例代碼吧:

  1. void func() { 
  2.    auto sec = std::chrono::seconds(10); 
  3.    auto mill = std::chrono::duration_cast<std::chrono::milliseconds>(sec); 
  4.    cout << sec.count() << endl; // 返回多少s 
  5.    cout << mill.count() << endl; // 返回多少ms 
  6. 輸出: 
  7. 10 
  8. 10000 

time_point:用來表示某個具體時間點。

定義如下:

  1. template <class _Clock, class _Duration = typename _Clock::duration> 
  2.    class time_point; 

使用方式如下:

  1. void func() { 
  2.    std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds> tp(std::chrono::seconds(12)); 
  3.    cout << tp.time_since_epoch().count() << endl; 
  4.    std::time_t t = system_clock::to_time_t(tp); 
  5.    cout << "time " << ctime(&t) << endl; 
  6. 輸出: 
  7. 12000 
  8. time Thu Jan  1 08:00:12 1970 

這里有個函數time_since_epoch(),表示這個time_point距離元年也就是1970年1月1日所經過的duration。

time_point也有各種表示方式,類似于duration,也提供了轉換函數time_point_cast()。

  1. void func() { 
  2.     time_point<system_clock, milliseconds> tp(seconds(12)); 
  3.     cout << tp.time_since_epoch().count() << endl; 
  4.     time_point<system_clock, seconds> tp2 = time_point_cast<seconds>(tp); 
  5.     cout << tp2.time_since_epoch().count() << endl; 
  6. 輸出: 
  7. 12000 
  8. 12 

Clocks:

這里的時鐘大體有三種:

  • system_clock
  • steady_clock
  • high_resolution_clock

system_clock表示當前的系統時鐘,有三個函數:

  1. now():表示當前時間的time_point 
  2. to_time_t():將time_point轉換成time_t秒 
  3. from_time_t():將time_t轉換成time_point 

源碼如下:

  1. struct system_clock { // wraps GetSystemTimePreciseAsFileTime/GetSystemTimeAsFileTime 
  2.     using rep = long long; 
  3.  
  4.     using period = ratio_multiply<ratio<_XTIME_NSECS_PER_TICK, 1>, nano>; 
  5.  
  6.     using duration                  = chrono::duration<rep, period>; 
  7.     using time_point                = chrono::time_point<system_clock>; 
  8.     static constexpr bool is_steady = false
  9.  
  10.     _NODISCARD static time_point now() noexcept { // get current time 
  11.         return time_point(duration(_Xtime_get_ticks())); 
  12.     } 
  13.  
  14.     _NODISCARD static __time64_t to_time_t(const time_point& _Time) noexcept { // convert to __time64_t 
  15.         return static_cast<__time64_t>(_Time.time_since_epoch().count() / _XTIME_TICKS_PER_TIME_T); 
  16.     } 
  17.  
  18.     _NODISCARD static time_point from_time_t(__time64_t _Tm) noexcept { // convert from __time64_t 
  19.         return time_point(duration(_Tm * _XTIME_TICKS_PER_TIME_T)); 
  20.     } 
  21. }; 

steady_clock表示穩定的時鐘,它只有一個函數,就是now(),后一次調用now()肯定比上一次調用now()的返回值大,不受系統時間修改的影響。

源碼如下:

  1. struct steady_clock { // wraps QueryPerformanceCounter 
  2.     using rep                       = long long; 
  3.     using period                    = nano; 
  4.     using duration                  = nanoseconds; 
  5.     using time_point                = chrono::time_point<steady_clock>; 
  6.     static constexpr bool is_steady = true
  7.  
  8.     _NODISCARD static time_point now() noexcept { // get current time 
  9.         const long long _Freq = _Query_perf_frequency(); // doesn't change after system boot 
  10.         const long long _Ctr  = _Query_perf_counter(); 
  11.         static_assert(period::num == 1, "This assumes period::num == 1."); 
  12.         const long long _Whole = (_Ctr / _Freq) * period::den; 
  13.         const long long _Part  = (_Ctr % _Freq) * period::den / _Freq; 
  14.         return time_point(duration(_Whole + _Part)); 
  15.     } 
  16. }; 

使用方式和之前的都相同:

  1. void func() {  // 計時 
  2.     std::chrono::time_point<std::chrono::steady_clock> begin = steady_clock::now(); 
  3.     std::this_thread::sleep_for(std::chrono::milliseconds(20)); 
  4.     auto end = steady_clock::now(); 
  5.     cout << "time " << duration_cast<milliseconds>(end - begin).count() << endl; 

high_resolution_clock表示高精度時鐘,是系統可用的最高精度的時鐘,它其實就是system_clock或者steady_clock的別名:

  1. using high_resolution_clock = steady_clock; 

介紹完了C++的chrono那下面再看下C語言的各種時間相關的API吧:

首先可以通過C語言的clock拿到程序執行時處理器所使用的時鐘數來計時:

  1. clock_t clock(void); 

該函數返回程序執行起(一般為程序的開頭),處理器時鐘所使用的時間。也獲取 CPU 所使用的秒數,除以 CLOCKS_PER_SEC即可,返回的clock_t其實就是long類型的重命名。

使用方式如下:

  1. void func() { 
  2.     clock_t start_t = clock(); 
  3.     cout << start_t << " 個時鐘 \n"
  4.     for (int i = 0; i < 100000000; i++) { 
  5.     } 
  6.     clock_t end_t = clock(); 
  7.     cout << end_t << " 個時鐘 \n"
  8.     cout << "循環的秒數:" << (double)(end_t - start_t) / CLOCKS_PER_SEC << endl; 

如何獲取當前時間戳,單位為秒

  1. void func() {  // 獲取當前時間戳,單位為秒 
  2.     struct timeval time
  3.     gettimeofday(&timeNULL); 
  4.     cout << time.tv_sec << " s \n"

也可以使用time函數:

  1. time_t time(time_t *time); 

該函數返回系統的當前日歷時間,返回的是自1970年1月1日以來所經過的秒數。

time_t其實就是一個整數類型,是int64_t的重命名,該函數直接使用返回值就好,參數一般傳空即可。

timer 存取結果的時間指針變量,類型為time_t,指針變量可以為null。

如果timer指針非null,則time()函數返回值變量與timer指針一樣,都指向同一個內存地址;

否則如果timer指針為null,則time()函數返回一個time_t變量時間。

  1. void func() {  // 獲取當前時間戳,單位為秒 
  2.     time_t now = time(NULL); 
  3.     cout << static_cast<int64_t>(now) << " s \n"

如何獲取當前時間戳?單位為毫秒

  1. void func() {  // 獲取當前時間戳,單位為毫秒 
  2.     struct timeval time
  3.     gettimeofday(&timeNULL); 
  4.     cout << time.tv_sec * 1000 + time.tv_usec / 1000 << " ms \n"

如何顯示當前的系統時間呢?可以使用ctime顯示當前時間:

  1. char* ctime(const time_t* time); 

該函數返回一個表示當地時間的字符串指針,輸出內容格式如下:

  1. day month year hours:minutes:seconds year\n\0。 

示例代碼如下:

  1. void func() { 
  2.     time_t now = time(NULL); 
  3.     char* dt = ctime(&now); 
  4.     cout << "cur time is: " << dt; 
  5. 輸出: 
  6. Tue Sep 22 22:01:40 2020 

可以使用tm結構自定義顯示當前時間的格式:

  1. struct tm * localtime(const time_t * timer); 

將日歷時間轉換為本地時間,從1970年起始的時間戳轉換為1900年起始的時間數據結構

另一個類似的函數是gmtime函數:

  1. struct tm *gmtime(const time_t *time); 

只是該函數返回的是UTC時間,協調世界時(UTC)也被稱為格林尼治標準時間(GMT)。

tm結構如下:

  1. struct tm { 
  2.   int tm_sec;   // 秒,正常范圍從 0 到 59,但允許至 61 
  3.   int tm_min;   // 分,范圍從 0 到 59 
  4.   int tm_hour;  // 小時,范圍從 0 到 23 
  5.   int tm_mday;  // 一月中的第幾天,范圍從 1 到 31 
  6.   int tm_mon;   // 月,范圍從 0 到 11 
  7.   int tm_year;  // 自 1900 年起的年數 
  8.   int tm_wday;  // 一周中的第幾天,范圍從 0 到 6,從星期日算起 
  9.   int tm_yday;  // 一年中的第幾天,范圍從 0 到 365,從 1 月 1 日算起 
  10.   int tm_isdst; // 夏令時 
  11. }; 

tm_sec 在C89的范圍是[0-61],在C99更正為[0-60]。通常范圍是[0-59],貌似有些系統會出現60秒的跳躍。

tm_mon 是從零開始的,所以一月份為0,十二月份為11。

tm_year是從1900年開始計算,所以顯示年份的時候需要加上1900

  1. void func() { 
  2.     time_t rawtime = time(NULL); 
  3.     struct tm* ptminfo = localtime(&rawtime); 
  4.     printf("cur time is: %02d-%02d-%02d %02d:%02d:%02d\n", ptminfo->tm_year + 1900, ptminfo->tm_mon + 1, 
  5.            ptminfo->tm_mday, ptminfo->tm_hour, ptminfo->tm_min, ptminfo->tm_sec); 
  6.     ptminfo = gmtime(&rawtime); 
  7.     printf("cur time is: %02d-%02d-%02d %02d:%02d:%02d\n", ptminfo->tm_year + 1900, ptminfo->tm_mon + 1, 
  8.            ptminfo->tm_mday, ptminfo->tm_hour, ptminfo->tm_min, ptminfo->tm_sec); 
  9. 輸出: 
  10. cur time is: 2020-09-23 21:27:37 
  11. cur time is: 2020-09-23 13:27:37 

可以通過asctime顯示tm結構的時間:

  1. char * asctime ( const struct tm * time ); 

和ctime類似,返回的都是一個固定時間格式的字符串,只是傳入的參數不同。

  1. void func() { 
  2.     time_t rawtime = time(NULL); 
  3.     struct tm* info1 = localtime(&rawtime); 
  4.     cout << "正常 日期和時間:" << asctime(info1) << endl; 
  5.     info1 = gmtime(&rawtime); 
  6.     cout << "UTC 日期和時間:" << asctime(info1) << endl; 
  7. 輸出: 
  8. 正常 日期和時間:Wed Sep 23 21:47:44 2020 
  9. UTC 日期和時間:Wed Sep 23 13:47:44 2020 

也可以使用strftime()函數,該函數可用于格式化日期和時間為指定的格式,如果產生的 C 字符串小于 size 個字符(包括空結束字符),則會返回復制到 str 中的字符總數(不包括空結束字符),否則返回零。

  1. size_t strftime( 
  2.     char *str, // 指向目標數組的指針,用來復制產生的C字符串 
  3.     size_t maxsize, // 最多傳出字符數量 
  4.     const char *format, // 格式化方式 
  5.     const struct tm *timeptr // tm指針 
  6. ); 

format格式如下:

  1. %a 星期幾的縮寫 
  2. %A 星期幾的全稱 
  3. %b 月份的縮寫 
  4. %B 月份的全稱 
  5. %c 標準的日期的時間串 
  6. %C 年份的前兩位數字 
  7. %d 十進制表示的每月的第幾天(值從1到31) 
  8. %D 月/天/年 
  9. %e 在兩字符域中,十進制表示的每月的第幾天 
  10. %F 年-月-日 
  11. %g 年份的后兩位數字,使用基于周的年 
  12. %G 年份,使用基于周的年 
  13. %h 簡寫的月份名 
  14. %H 24小時制的小時(值從0到23) 
  15. %I 12小時制的小時(值從1到12) 
  16. %j 十進制表示的每年的第幾天(值從1到366) 
  17. %m 十進制表示的月份(值從1到12) 
  18. %M 十時制表示的分鐘數(值從0到59) 
  19. %n 換行符 
  20. %p 本地的AM或PM的等價顯示 
  21. %r 12小時的時間 
  22. %R 顯示小時和分鐘:hh:mm 
  23. %S 十進制的秒數(值從0到61) 
  24. %t 水平制表符 
  25. %T 顯示時分秒:hh:mm:ss 
  26. %u 每周的第幾天,星期一為第一天 (值從1到7,星期一為1) 
  27. %U 第年的第幾周,把星期日作為第一天(值從0到53) 
  28. %V 每年的第幾周,使用基于周的年 
  29. %w 十進制表示的星期幾(值從0到6,星期天為0) 
  30. %W 每年的第幾周,把星期一做為第一天(值從0到53) 
  31. %x 標準的日期串 
  32. %X 標準的時間串 
  33. %y 不帶世紀的十進制年份(值從0到99) 
  34. %Y 帶世紀部分的十制年份 
  35. %Z 時區名稱,如果不能得到時區名稱則返回空字符。 
  36. %% 一個%符號 

使用代碼如下:

  1. void func() { 
  2.     time_t rawtime = time(NULL); 
  3.     char buf[256]; 
  4.     strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", localtime(&rawtime)); 
  5.     cout << buf << endl; 

參考資料:

https://www.runoob.com/cprogramming/c-function-strftime.html

https://www.runoob.com/cprogramming/c-function-clock.html

https://www.runoob.com/cplusplus/cpp-date-time.html

https://www.cnblogs.com/jwk000/p/3560086.html

 

責任編輯:武曉燕 來源: 程序喵大人
相關推薦

2011-07-13 11:34:58

CC++時間函數

2011-07-20 17:16:50

C++重載函數

2024-04-01 09:13:20

C++函數遞增

2010-01-19 13:43:59

C++函數

2011-07-20 13:40:09

拷貝構造函數

2010-02-01 09:18:49

C++函數指針

2011-06-17 16:09:04

freadfwrite

2011-07-13 16:49:59

C++

2011-07-20 15:58:53

C++引用

2011-07-20 13:57:06

C++STL

2010-01-18 10:16:58

學習C++

2011-07-14 16:56:21

2011-07-14 23:27:05

C++引用

2011-07-20 16:43:34

C++

2011-06-21 10:37:56

const

2011-07-14 16:26:01

2010-01-19 13:17:05

C++數據類型

2011-07-20 14:12:48

2011-07-20 13:57:06

C++STL

2011-06-21 15:00:07

JAVAC++
點贊
收藏

51CTO技術棧公眾號

日韩在线观看一区| 久久综合久久八八| 乱妇乱女熟妇熟女网站| 可以免费看污视频的网站在线| 久久九九国产| 色噜噜狠狠狠综合曰曰曰88av| 天天操精品视频| 国产777精品精品热热热一区二区| 久久老女人爱爱| 91久久久久久久久久| 婷婷综合五月天| 欧美专区第一页| 国产大屁股喷水视频在线观看| 一区二区三区在线免费看 | 成人免费在线一区二区三区| 91av在线免费视频| 99久久99久久精品国产片果冰| 亚洲成人久久网| 亚洲精品久久久中文字幕| 超碰97国产精品人人cao| 欧美激情在线一区二区三区| 国产精品播放| 国产精品免费无遮挡| 天堂精品中文字幕在线| 欧美激情a∨在线视频播放| 色噜噜噜噜噜噜| 日韩欧美天堂| 日韩欧美在线网站| 亚洲欧美自偷自拍另类| 爱啪视频在线观看视频免费| 自拍偷拍亚洲激情| 日韩福利二区| 日本国产在线| www.欧美色图| 97在线中文字幕| 91在线精品入口| 免费在线看一区| 国产91精品最新在线播放| 日本一区二区欧美| 好吊日精品视频| 久久九九亚洲综合| 91视频最新网址| 欧美aaaa视频| 色琪琪综合男人的天堂aⅴ视频| 草草影院第一页| 亚洲综合图色| 日韩高清不卡av| 国产精品久久久免费观看| 东京久久高清| 亚洲护士老师的毛茸茸最新章节| 国产免费一区二区三区最新6| 国产精品久久久久久久久久辛辛| 欧美日韩黄色一区二区| 91香蕉视频污版| 国产日本久久| 7777精品伊人久久久大香线蕉经典版下载 | 精品无码三级在线观看视频| 国产日韩一区在线| 国产精品视频a| 国产精品香蕉一区二区三区| 91精品久久久久久蜜桃| 亚洲大尺度视频| av在线这里只有精品| 久久99精品久久久久久秒播放器| 天堂在线一二区| 久久精品免费在线观看| 少妇精品久久久久久久久久| 色开心亚洲综合| 亚洲人成在线观看一区二区| wwwwww欧美| 免费看男女www网站入口在线| 日韩欧美在线免费观看| 日韩中文字幕二区| 婷婷激情成人| 精品国产区一区| 青青草视频成人| 日产午夜精品一线二线三线| 久久亚洲综合国产精品99麻豆精品福利| 国产精品白丝喷水在线观看| 亚洲天堂偷拍| 日本欧美一二三区| 国产一区二区三区黄片| 成人午夜在线播放| 日本高清不卡一区二区三| 麻豆av在线免费看| 五月天亚洲婷婷| 亚欧在线免费观看| 99精品中文字幕在线不卡 | 成人欧美一区二区三区视频| 天堂中文在线资| 国产精品久久久久久一区二区三区| 日本丰满少妇黄大片在线观看| 成人影院在线播放| 欧美性大战xxxxx久久久| 久久久久亚洲av片无码v| 日韩av影院| 久久亚洲影音av资源网| www.毛片.com| 国产在线国偷精品产拍免费yy| 韩国一区二区三区美女美女秀 | 天堂俺去俺来也www久久婷婷| 色噜噜狠狠色综合网图区| 中文在线观看免费网站| 毛片一区二区三区| 精品无人乱码一区二区三区的优势| 2017亚洲天堂1024| 婷婷一区二区三区| 一卡二卡三卡四卡五卡| 欧美美女一区| 91成人精品网站| 国产三级第一页| 久久久不卡影院| 成人免费播放器| 成人永久在线| 中文字幕精品av| 91视频免费网址| 国产不卡免费视频| 伊人久久婷婷色综合98网| 韩日毛片在线观看| 欧美一二三四在线| 成人午夜免费影院| 久久精品30| 狠狠色伊人亚洲综合网站色| 97caopor国产在线视频| 欧美日韩午夜在线| 色欲av无码一区二区三区| 欧美日韩国内| 亚洲va电影大全| 69视频在线| 欧美性xxxxxx少妇| 最近中文字幕免费| 午夜宅男久久久| 久久精品国产第一区二区三区最新章节| 主播国产精品| 制服丝袜亚洲网站| 久久精品日韩无码| 日韩av一级电影| 日本一区二区视频| 成人性教育av免费网址| 日韩精品久久久久| 国产www在线| 久久综合九色综合97_久久久| 免费看国产曰批40分钟| av毛片精品| 97视频在线观看成人| 日韩有码第一页| 婷婷开心激情综合| 日韩精品人妻中文字幕有码| 91久久午夜| 精品国产乱码久久久久软件| 888av在线视频| 亚洲国产婷婷香蕉久久久久久| www.av视频在线观看| 成人污视频在线观看| 很污的网站在线观看| 国产精品极品在线观看| 91高清视频免费观看| 男人天堂亚洲二区| 欧美少妇一区二区| 日本一级片免费| 成人手机在线视频| 欧美日韩在线一| 九九在线精品| 国产视频观看一区| 国产一区二区日韩精品欧美精品| 中文字幕一区二区三区四区视频 | 日韩免费小视频| 自拍偷拍亚洲一区| 99国产在线播放| 亚洲v中文字幕| 男女黄床上色视频| 美国十次了思思久久精品导航| 天堂v在线视频| eeuss国产一区二区三区四区| 97久久精品在线| 国产九九在线| 51久久夜色精品国产麻豆| 久久一二三四区| 国产婷婷色一区二区三区| 天天干天天操天天做| 欧美人成网站| 日本高清不卡一区二区三| 国产麻豆精品| 欧美亚洲午夜视频在线观看| av电影在线网| 精品国产免费一区二区三区四区| 久久亚洲精品石原莉奈| 亚洲欧洲日韩综合一区二区| 国产精品伦子伦| 久久精品72免费观看| 人妻少妇精品久久| 欧美好骚综合网| 久久99热只有频精品91密拍| 四虎在线精品| 欧洲成人在线观看| 伊人春色在线观看| 国产一区二区成人| 日本高清视频免费看| 欧美日韩一区久久| 国产成人亚洲欧洲在线| 亚洲欧洲日产国产综合网| 国产激情第一页| 国产最新精品精品你懂的| 国产肥臀一区二区福利视频| 欧美永久精品| 亚洲成人一区二区三区| 美国一区二区| 91精品国产99久久久久久红楼 | 日韩人妻无码一区二区三区| 韩国精品久久久| 热久久精品国产| 亚洲网址在线| 亚洲美女自拍偷拍| 精品日韩欧美一区| 九九热久久66| 亚洲国产中文在线| 国产这里只有精品| 亚洲高清黄色| 欧美在线xxx| 黄色大片在线| 欧美刺激性大交免费视频| 中文日本在线观看| 在线播放精品一区二区三区 | 欧美精品第三页| 亚洲国产精品第一区二区三区| 欧美一级黄色录像片| 日韩成人激情| 亚洲精品白虎| 欧美日韩伦理| 神马影院午夜我不卡影院| 麻豆视频一区| 精品国产一区二区三区日日嗨| 日韩中文字幕视频网| 成人黄色大片在线免费观看| 成人四虎影院| 国产精品免费看久久久香蕉| 你懂得影院夜精品a| 奇门遁甲1982国语版免费观看高清 | 国模私拍视频在线| 精品日产卡一卡二卡麻豆| 国产高清不卡视频| 精品日韩成人av| 色哟哟中文字幕| 亚洲精品美女在线观看播放| 天堂中文网在线| 日韩av综合中文字幕| 婷婷丁香花五月天| 亚洲美女激情视频| 欧洲天堂在线观看| 一区二区国产精品视频| 成人全视频高清免费观看| 中文字幕国产日韩| 精品视频在线一区二区| 欧美老妇交乱视频| segui88久久综合9999| 78m国产成人精品视频| 亚洲va中文在线播放免费| 国产精品三级久久久久久电影| 国产精品久久久久久吹潮| 成人av电影天堂| 日韩中文在线| 久久影院理伦片| 国产精品自拍区| 一区二区不卡在线视频 午夜欧美不卡' | 日韩av在线网页| 国产一二在线观看| xxxxx成人.com| 色老头在线观看| 91av在线看| 91九色综合| 亚洲综合日韩中文字幕v在线| 成人爽a毛片| 欧洲精品在线一区| 国产精品不卡| 久久av综合网| 日韩电影在线观看网站| 免费av不卡在线| 风间由美一区二区三区在线观看| 玖玖爱在线观看| |精品福利一区二区三区| 国产成人精品亚洲男人的天堂| 一本到三区不卡视频| 91av国产精品| 精品亚洲一区二区三区在线观看| av基地在线| 97精品视频在线播放| 99精品国自产在线| 国产精品二区三区四区| 精品日韩欧美一区| 亚洲爆乳无码精品aaa片蜜桃| 亚洲资源av| 欧美成人手机在线视频| 99久久国产免费看| 日韩成人短视频| 欧美性猛交xxx| a天堂视频在线| 国产香蕉一区二区三区在线视频| 国产又色又爽又黄刺激在线视频| 国产福利精品在线| 国产精品毛片av| 性欧美18一19内谢| 老鸭窝亚洲一区二区三区| 视频区 图片区 小说区| 久久精品人人做人人综合 | 999国内精品视频在线| 久草在线成人| 老太脱裤让老头玩ⅹxxxx| 精品一区二区三区视频在线观看| 亚洲第一页av| 亚洲一区二区成人在线观看| 一级淫片免费看| 亚洲色图五月天| 精品极品在线| 99中文视频在线| 香蕉久久网站| 在线免费视频一区| 久久综合狠狠综合久久激情 | 顶级网黄在线播放| 国产精品96久久久久久| 特黄特色欧美大片| 131美女爱做视频| 懂色一区二区三区免费观看| 国产极品国产极品| 欧美另类高清zo欧美| 国产黄在线观看免费观看不卡| 性欧美在线看片a免费观看| 日韩精品视频一区二区三区| 少妇高潮流白浆| 麻豆久久久久久| 天天操天天摸天天舔| 欧美日韩一区二区三区高清| 8888四色奇米在线观看| 国产精品久久久久久久久久久不卡| 天堂综合网久久| 欧美一级在线看| 91啪亚洲精品| 亚洲欧美综合另类| 亚洲欧洲午夜一线一品| 性欧美gay| 日韩国产精品一区二区| 日韩国产精品久久久久久亚洲| 亚洲码无人客一区二区三区| 欧美丝袜第一区| 免费在线黄色影片| 日韩美女福利视频| 精品日本12videosex| 视频二区在线播放| 亚洲免费av高清| 亚洲AV无码一区二区三区性 | 国产麻豆成人精品| 亚洲色婷婷一区二区三区| 日韩免费看网站| av福利在线导航| 欧美日本韩国在线| 日韩成人午夜精品| 精品在线观看一区| 欧美一区二区三区视频在线观看| 日皮视频在线观看| 精品欧美一区二区久久久伦| 国产视频一区免费看| 日韩一区二区a片免费观看| 欧美写真视频网站| 18网站在线观看| 九九九九九精品| 日本在线不卡视频一二三区| 男女全黄做爰文章| 日韩精品一区二区三区视频| 国产在线精彩视频| 亚洲日本精品国产第一区| 国产一区在线看| 日韩免费一级片| 国产小视频91| 日韩一区二区三区精品| 日韩av综合在线观看| 国产欧美日韩另类视频免费观看 | 亚洲四虎影院| 欧美h视频在线观看| 菠萝蜜视频在线观看一区| 男人天堂2024| 欧美乱大交xxxxx| 女人丝袜激情亚洲| 99精品999| 一本色道久久综合亚洲精品按摩 | 26uuu久久噜噜噜噜| 成人综合久久| 一级黄色大片免费看| 91成人免费电影| 日本高清在线观看视频| 欧美午夜精品久久久久免费视 | 黄色精品一区| 在线观看亚洲大片短视频| 日韩亚洲欧美中文三级| 欧美人体一区二区三区| 日本免费黄色小视频| 国产日韩欧美a| 老熟妇高潮一区二区高清视频| 国产精品欧美日韩久久| 亚洲另类视频| jizz亚洲少妇| 中文字幕国产精品久久|