C++中,date_time庫使用date_period類來表示日期區間的概念

2020-12-11 C語言愛好者俱樂部

date_time庫使用date_period類來表示日期區間的概念,它是時間軸上的一個左閉右開區間,端點是兩個date對象。區間的左邊界必須小於右邊界,否則date_period將表示一個無效的日期區間。date_period的類摘要如下:

class date_period

{

public:

period(date,date);//構造函數

period(date,days);

date begin()const;//區間端點操作

date end()const;

date last()const;

days length()const;

bool is_nul1()const;

bool operator==(const period 6)const;//比較操作

bool operator<(const period&)const;

void shift(const days s);//平移

void expand(const days 6);//擴展

boo1 contains(const date 6)const;//區間運算

boo1 contains(const period&)const;

boo1 intersects(const period&)const;

boo1 is adjacent(const period&)const;

boo1 is before(const date&)const;

boo1 is after(const date&)const;

period intersection(const period s)const;

period merge(const period&)const;

period span(const period&)const;

};

成員函數begin()和last()返回日期區間的兩個端點,而end()返回 last()後的第一天,與標準容器中的end()含義相同,是一個「逾尾的位置」。length()返回日期區間的長度,以天為單位。如果日期區間在構造時使用了左大右小的端點或者日期長度是 0,那麼is_null()函數將返回true。例如:

assert(dp. last(). day()==20);

assert(dp, end(), day()==21);

assert(dp. length(). days()==20);

date_period可以進行全序比較運算,但比較不是依據日期區間的長度,而是依據區間的端點,即第一個區間的end()和第二個區間的begin(),判斷兩個區間在時間軸上的位置大小。如果兩個日期區間相交或者包含,那麼比較操作無意義。date_period還支持輸入輸出操作符,默認的輸入輸出格式是一個[YYYY-mmm-DD/YYYY-mmm-DD]形式的字符串。例如:

date period dpl(date(2017,1,1),days(20));

date_period dp2(date(2017,2,19),days(10));

cout<<dp1;//[2017-Jan-01/2017-Jan-20]

assert(dpl<dp2);

date_period可以指定區間的兩個端點構造,也可以指定左端點再加上時長構造,通常後一種方法比較常用,相當於生活中從某天開始的一個周期。以上就是在C++中,date_time庫使用date_period類來表示日期區間的方法。

相關焦點

  • C++中,date_time庫示範日期迭代器的基本用法,都在這裡了
    date_time庫可以用簡單的遞增或者遞減操作符連續訪問日期,這些迭代器包括day_iterator、week_iterator、month_iterator和year_iterator,它們分別以天、周、月和年為單位增減。
  • 用date_time庫創建日期對象的方法,看完讓你收穫滿滿
    空的構造函數會創建一個值為 not_a_date_time 的無效日期;順序傳入年月日值則創建一個對應日期的date對象,例如:date d1;//一個無效的日期date d2(2010,1,1);//使用數字構造日期date d3(2000
  • 在C++中,date類訪問日期的操作方法,都在這裡了
    date類的對外接口很像C語言中的tm結構,也可以獲取它保存的年、月、日、星期等成分,但date還提供了更多的操作。assert(ymd. year ==2017);assert(ymd. month ==6);assert(ymd. day ==1);成員函數day_of_week()返回date的星期數,0表示星期天。
  • 別用Date了,Java8新特性之日期處理,現在學會也不遲!
    在JDK8中我們已經開始使用LocalDateTime,那麼對於這個類的用法,如果有同學不了解的話,來看看下面的文章,小Hub看了一遍,覺得作者寫得很詳細了,對比式寫法,更加通俗易懂!解析、格式化時間的 DateTimeFormatter 類也全部重新設計。實戰在教程中我們將通過一些簡單的實例來學習如何使用新API,因為只有在實際的項目中用到,才是學習新知識以及新技術最快的方式。1. 獲取當前的日期Java 8 中的 LocalDate 用於表示當天日期。和 java.util.Date不同,它只有日期,不包含時間。當你僅需要表示日期時就用這個類。
  • 在C++中,對ptime的操作,相當於對date和time_duration的操作
    由於ptime相當於date+time_duration,所以對它的操作可以分解為對這兩個組成部分的操作。ptime使用date()和time_of_day()兩個成員函數獲得時間點中的日期和時間長度,然後就可以分別處理。
  • java中date日期計算使用方法
    在java中,日期時間類是我們經常使用的一個類。那麼怎麼創建時間類呢。很簡單,代碼如下:Date date = new Date();上述代碼便初始化了一個時間類,雖然簡單,但是裡面的坑不少。單純的這樣寫並不能輸出我們想要的數據。上面代碼將會輸出一個標準國際時間,如圖所示:
  • python標準庫 datetime 日期的使用
    我們在工作過程中有時候會用到日期方面的計算,比如計算兩個日期之前的差,這需要用到python中的一個日期庫 date,今天我們就來認識一下這個庫的使用吧
  • 利用Python中的pandas(date_range)庫生成時間序列(time series)
    在講pandas時間序列函數之前,我大概介紹下什麼是時間序列(time series)。時間序列(time series)簡單的說就是各時間點上形成的數值序列,時間序列(time series)分析就是通過觀察歷史數據預測未來的值。比如股票預測、房價預測分析等。本篇文章主要詳細講解生成時間索引的函數date_range及延伸函數。
  • Java基礎教程:Java之Object類,Objects類,Date類概念及使用!
    Object類概述java.lang.Object類是Java語言中的根類,即所有類的父類。它中描述的所有方法子類都可以使用。在對象實例化的時候,最終找的父類就是Object。如果一個類沒有特別指定父類, 那麼默認則繼承自Object類。
  • 2020 年,你還在使用 Java 中的 SimpleDateFormat 嗎?
    其實,作為一名Java 程式設計師,我們會經常在編程時候和時間打交道,比如要把某一個時間存儲到資料庫中去,而我們直接使用Datedate = newDate(); System.out.println(date);得到的時間都是這樣的SunJun 07 17
  • SimpleDateFormat 如何安全的使用?
    SimpleDateFormat 是 Java 中一個非常常用的類,他是以區域敏感的方式格式化和解析日期的具體類。 它允許格式化 (date -> text)、語法分析 (text -> date)和標準化。SimpleDateFormat 允許以任何用戶指定的日期-時間格式方式啟動。
  • Java之Date類的構造方法和成員方法
    Java之date毫秒值的概念和作用,這次,小編要介紹的是Date類的成員方法還有構造方法。(相當於System.currentTimeMillis()方法)返回自1970年1月1日00:00:00 GMT以來此Date對象表示的毫秒數。
  • 你可能不知道的 Date 類
    時間屬性可以在不同的系統中表示相同的時刻,而如果使用了本地時間對象,則反映當地的時間。JavaScript 的Date對象提供了數個UTC時間的方法,也相應提供了當地時間的方法。UTC,也就是我們所說的格林威治時間,指的是time中的世界時間標準。而當地時間則是指執行JavaScript的客戶端電腦所設置的時間。
  • 反正不是protect date!
    現在有好多朋友喜歡購買進口食品,但是卻有很多人不清楚外文生產日期、保質期等怎麼看,今天我們來一起學習一下。最遲銷售日期 sell-by date(1) sell-by date表示「最遲銷售日期,保質期」,即印商品在包裝袋上的日期,表示過了這一日期商品不能再銷售。
  • Linux下日期時間date命令是如何使用的?
    前言在linux系統下,date命令被用來顯示或設定日期和時間。前面的文章我們介紹過,日誌是排查問題的重要組成部分,但在日誌的生成和查看中,與準確的時間是分不開的,如果時間不準確,查看起日誌來會變得很費勁。
  • python教程之七模塊與函數庫
    模塊上一章,我們講解了函數的概念及其使用方法和案例等,我們定義了函數後,可以多次調用該函數來使用,但是如果我們從python解釋器退出後,這些函數信息就都無效了,為此,我們本章提供了模塊這個概念。我們把這些定義存放在文件裡,保存在磁碟裡,這個文件被稱為模塊。模塊是包含所有我們定義的函數和變量的文件,可以被別的程序引入,用來使用模塊裡面的信息。
  • Excel日期及時間函數——DATEVALUE函數
    DATEVALUE函數概念及語法DATEVALUE函數概念:將日期值從字符串轉化為序列數,表示日期時間代碼的日期;DATEVALUE 函數將存儲為文本的日期轉換為 Excel 識別為日期的序列號。 例如,公式=DATEVALUE("1/1/2008") 返回 39448,即日期 2008-1-1 的序列號。
  • Ruby 日期 & 時間(Date & Time)
    Ruby 日期 & 時間(Date & Time)Time 類在 Ruby 中用於表示日期和時間
  • 最好用的 6 款 Python 的日期時間庫
    由於字符串中的「Z」表示此日期時間字符串採用UTC,所以我們可以在格式中忽略此項。此轉換的代碼如下所示:格式化字符串很難閱讀和理解。有些人不太了解閱讀datetime代碼的人就會發現這很難理解,儘管其含義已有文檔說明,但仍然很難閱讀。讓我們看看其他庫如何處理這種轉換。
  • javascript中Date常用方法
    Date對象  var now=new Date();  //2.構造函數的參數為日期的毫秒數,返回距離1970年1月1日經過該毫秒後對應的日期  var date=new Date(1222233);  //3.構造函數的參數為對應的日期字符串,返回對應的日期對象,其中年,月,日是必須的,時分秒可選  //實際上,上面這種直接將表示日期的字符串傳遞給