主頁 > 後端開發 > c++程式設計 日期與時間顯示

c++程式設計 日期與時間顯示

2020-09-25 12:43:47 後端開發

大家好,我是剛學c++的菜鳥,現在要編一程式(日期與時間顯示),具體要求如下,望各位不吝賜教,萬分感謝!
日期時間顯示
(1)定義一個時間類Time,能提供時、分、秒組成的時間,并提供時間增加的方法(按秒)。
(2)定義一個日期類Date,記錄年、月、日,并提供日期增加的方法(按天)。
(3)由類Time和日期類Date,派生出DateTime類,除具有年、月、日、時、分、秒外,還增加國名和與格林威治時間的差。
編一應用程式,輸入年、月、日、時、分、秒,在螢屏上模擬顯示一電子計時器,不斷輸出下一秒的時間和日期,以及格林威治的日期和時間。
注意,當對日期增加1天后,會涉及所謂的“進位”問題:首先算出本“日”所在的月份具有的天數N,若加1之后的“日”數值超過所在的月份具有的天數N時,“進位”到月,而月份若超過12時還要“進位”到年。
思考:可對該類增加你所考慮到的其他功能,如,對日期進行輸入,計算二日期的間隔天數,計算某日期為星期幾,列印物件當前資料的y年m月的月歷,一次增加若干天,對兩個日期進行其他比較運算等。

uj5u.com熱心網友回復:

BCB中自帶的TDateTime和TTime基本滿足你要求

uj5u.com熱心網友回復:

利用BCB自身的TDateTime組件,再用日期時間格式函式FormatDateTime("yyyy-mm-dd hh:mm:ss")處理成你需要的格式。如果只是需要當前時間直接用Now()函式。
如:
1、你要顯示:2012-05-25 20:15:20
可以用AnsiString sDateTime = FormatDateTime("yyyy-mm-dd hh:mm:ss", Now());
2、你要顯示:2012年05月25日 20時15分20秒
可以用AnsiString sDateTime = FormatDateTime("yyyy年mm月dd日 hh時mm分ss秒", Now());

uj5u.com熱心網友回復:

謝謝,還是不太明白

uj5u.com熱心網友回復:

TDateTime為實作TDateTime資料型別和使用TDateTime資料型別的日期-時間運行庫例程的C++類。 
   TDateTime類繼續了double型的val資料成員,其中包含了日期-時間值。TDateTime值的整數部分為自從12/30/1899以來的天數。其小數部分為天的時間。 
   下列為一些TDateTime值的例子以及對應的日期和時間: 
   值       日期和時間 
0 12/30/1899 12:00 am 
2.75 1/ 1/1900 6:00 pm 
-1.25 12/29/1899 6:00 am 
35065 1/ 1/1996 12:00 am 
   要計算兩個日期間的天的小數部分,把兩個值相減。要在某天的小數部分增加一個日期-時間值,可把該小數加上日期-時間值。 

方法串列 
CurrentDate 回傳當前日期作為TDateTime值 
CurrentDateTime 回傳當前日期和時間作為TDateTime 值 
CurrentTime 回傳當前時間作為TDateTime值 
DateString 把TDateTime值的日期轉換為一個字串 
DateTimeString 把TDateTime值轉換為一個字串 
DayOfWeek 回傳 TDateTime的week的天 
DecodeDate 把TDateTime值分為year, month,和day值并把這些值分別存盤在year, month和day引數中 
DecodeTime 把TDateTime值分為hour, minute, second,和millisecond值并把這些值分別存盤在hour, min, sec和msec引數中 
FileDate 把日期 - 時間值轉換為DOS日期 - 時間標記 
FileDateToDateTime 把FileDate引數指定的DOS檔案的日期 - 時間值轉換為TDateTime值 
FormatString 利用format給定的格式格式化TDateTime物件 
Operator - 回傳兩個TDateTime集之間的差的新的TDateTime物件 
operator -- 回傳一個TDateTime與Int引數之間差的新的TDateTime物件 
operator != 比較兩個TDateTime物件的不相同性 
operator + 回傳一個為兩個TDateTime物件的聯合的一個新TDateTime 物件 
operator += 把TDateTime 物件的本身資料與rhs 指定的TDateTime物件的聯合賦給TDateTime 
operator -= 把TDateTime 物件本身資料的rhs指定的TDateTime物件之間的差賦給TDateTime物件 
operator < 比較兩個TDateTime 物件 
operator <= 比較兩個TDateTime 物件 
operator = 把rhs 內容賦給TDateTime 
operator == 比較兩個TDateTime 物件的相同 
operator > 比較兩個TDateTime 物件 
operator >= 比較兩個TDateTime 物件 
operator AnsiString AnsiString 為轉換運算子 
operator double double 為轉換運算子 
operator int int 為轉換運算子 
TDateTime TDateTime 建構式 
TimeString 把TDateTime 物件轉換為AnsiString 

方法 
TDateTime::CurrentDate 
回傳當前日期作為TDateTime值。 
static TDateTime __fastcall CurrentDate( ); 
檢索當前日期并作為新的TDateTime 物件回傳。 

TDateTime::CurrentDateTime 
   回傳當前日期和時間作為TDateTime值。 
  static TDateTime __fastcall CurrentDateTime( ); 
   檢索當前日期和時間并作為新的TDateTime 物件回傳。 

TDateTime::CurrentTime 
   回傳當前時間作為TDateTime 值。 
  static TDateTime __fastcall CurrentTime( ); 
   檢索當前時間并作為新的TDateTime 物件回傳。 

TDateTime::DateString 
   把TDateTime 值的日期轉換為一個字串。 
  AnsiString __fastcall DateString( )const; 
   回傳TDateTime物件作為一個AnsiString 的值。轉換利用ShortDateFormat 變數指定的格式。 

TDateTime::DateTimeString 
   把TDateTime 值轉換為一個字串。 
  AnsiString __fastcall DateTimeString( )const 
   回傳一個AnsiString 物件,其中包含TDateTime 物件的日期和時間(val 資料成員)轉換為字串的值。假如TDateTime 值沒有包含一個date 值,date 就顯示為00/00/00。假如TDateTime 值沒有包含一個time值,time 就顯示為00:00:00 AM。可以通過改變日期和時間格式變數來改變字串格式。 


TDateTime::DayOfWeek 
   回傳TDateTime 的week的天。 
  int __fastcall DayOfWeek()const; 
   TDateTime 的DayOfWeek 物件為 1 到 7 之間的整數。Sunday 為week 的第一天,Saturday 為第七天。 

TDateTime::DecodeDate 
   把TDateTime 值分為year ,month和day 值并把這些值分別存盤在 year ,month 和 day 引數中。 
  void __fastcall DecodeDate(unsigned short* year,unsigned short* month,unsigned short* day)const; 
   需要訪問TDateTime物件的year, month 和day 時,利用DecodeDate。 

TDateTime::DecodeTime 
   把TDateTime 值分為 hour ,minute,second 和 millisecond 值并把這些值分別存盤在 hour,min,sec 和 msec引數中。 
  void __fastcall DecodeTime(unsigned shot* hour,unsigned short*nim,unsigned short* sec,unsigned short* msec)const; 
   需要訪問TDateTime物件的hour,minute,second或millisecond時,利用DecodeDate。 

TDateTime::FileDate 
   把日期—時間值轉換為DOS日期—時間標記。 
  int __fastcall FileDate()const; 

TDateTime::FileDateToDateTime 
   把fileDate 引數指定的DOS檔案的日期—時間值轉換為TDateTime值。 
  static TDateTime __fastcall FileDateToDateTime(int fileDate); 

TDateTime::FormatString 
   利用format 給定的格式格式化TDateTime 物件。 
  AnsiString __fastcall FormatString(const AnsiString& format); 
   支持下列分類符字串: 

分類符字串 顯示方式 
c 日期使用 ShortDateFormat全域變數給的格式,時間使用 LongTimeformat 全域變數給的格式。假如分數是0,時間就不顯示。 
d 以數字表示日子,第一個字符不為 0 (1—31) 
dd 以數字表示日子,第一個字符為0 (01—31) 
ddd 以使用ShortDateFormat全域變數給的字串的縮寫(Sun—Sat) g表示日子 
dddd 以使用Long Day Names全域變數給的字串的全稱(Sunday—Saturday)表示日子 
ddddd 使用ShortDateFormat全域變數給的格式表示日期 
dddddd 使用Long DateFormat 全域變數給的格式表示日期 
m 以數字表示月份,第一個字符不為0 (1—12)。若m 后面跟著h或 hh,顯示的是分鐘,而不是月份 
mm 以數字表示月份,第一個字符為0(01—12)。若mm 后面跟著h或 hh,顯示的是分鐘,而不是月份。 
mmm 以使用ShortMonthNames 全域變數給的字串的縮寫( Jan — Dec)表示月份 
mmmm 以使用Long Mames 全域變數給的字串的全稱(January — Decermber)表示月份 
yy 以兩位數字表示年(00—99) 
yyyy 以四位數字表示年(0000—9999) 
h 以數字表示小時,第一字符不為0(0—23) 
hh 以數字表示小時,第一字符為0(0—23 
n 以數字表示分鐘,第一個字符不為0(0—59) 
nn 以數字表示分鐘,第一個字符為0(00—59) 
s 以數字表示秒,第一個字符不為0(0—59) 
ss 以數字表示秒,第一個字符為0(00—59) 
t 時間使用由ShortTimeFormst全域變數給定的格式 
Ttt 時間使用由LongTimeFormat全域變數給定的格式 
am/pm 時間為前面的h或hh分類符使用12小時時鐘,后面跟"am"指的是上午的時間,后面跟"pm"指的是下午的時間。am/pm分類符可以是大寫、小寫或混合使用,都能相應的顯示 
a/p 時間為前面的h或hh分類符使用12小時時鐘,后面跟"a"指的是上午的時間,后面跟"p"指的是下午的時間。a/p分類符可以是大寫、小寫或混合使用,都能相應的顯示 
ampm 時間為前面的h或hh分類符使用12小時時鐘,后面跟TimeAMString 全域變數指的是上午的時間,后面跟TimePMString 全域變數指的是下午的時間 
/ 由DateSeparator 全域變數給定的日期分隔符 
: 由TimeSeparator 全域變數給定的時間分隔符 
'xx'/"xx" 用單引號或雙引號括起的符號,表示不進行格式轉換 
   格式分類符應寫成大寫或小寫字母,兩個產生同樣效果。假如格式引數指的是空字串,日期時間值被格式化成格式分類符給的是c。 

TDateTime::operator - 
   TDateTime的operator-被多載如下: 
  TDateTime __fastcall operator - (const TDateTimeBase& rhs)const; 
   回傳這個TDateTime 物件與rhs 的差。 

  TDateTime __fastcall operator - (const TDateTime& rhs)const; 
   回傳兩個TDatieTime 物件的差。 
  TDateTime __fastcall operator - (const double rhs)const; 
   回傳這個TDateTime 物件與double的rhs 的差。 
  TDateTime __fastcall operator - (const int rhs)const; 
   回傳這個TDateTime 物件與int 的rhs 的差。 

TDateTime::operator -- 
   TDateTime的operator--被多載如下: 
  TDateTime& operator -- ( ); 
   把這個TDateTime物件的日期減去一天(從val資料成員中減1)。 
  TDateTim 

-

uj5u.com熱心網友回復:

樓上說的很全。。。。。學習個

uj5u.com熱心網友回復:

真的寫得不錯啊

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/125626.html

標籤:基礎類

上一篇:想通過上傳檔案到SQL SERVER資料庫,并可從資料下載保存為檔案,上傳下載均有進度條;實作C/S模式通過資料庫在線升級,碰到些問題

下一篇:stc15f104w做的紅外接受程式走不通請查找問題

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more