歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C++編程練習-時間日期格式轉換

C++編程練習-時間日期格式轉換

日期:2017/3/1 11:16:40   编辑:Linux編程
Description
世界各地有多種格式來表示日期和時間。對於日期的常用格式,在中國常采用格式的是“年年年年/月月/日日”或寫為英語縮略表示的”yyyy/mm/dd”,此次編程大賽的啟動日期“2009/11/07”就是符合這種格式的一個日期,而北美所用的日期格式則為“月月/日日/年年年年”或”mm/dd/yyyy”,如將“2009/11/07”改成這種格式,對應的則是”11/07/2009”。對於時間的格式,則常有12小時制和24小時制的表示方法,24小時制用0-24來表示一天中的24小時,而12小時制只采用1-12表示小時,再加上am/pm來表示上午或下午,比如”17:30:00”是采用24小時制來表示時間,而對應的12小時制的表示方法是”05:30:00pm”。注意12:00:00pm表示中午12點,而12:00:00am表示凌晨12點。

對於給定的采用”yyyy/mm/dd”加24小時制(用短橫線”-”連接)來表示日期和時間的字符串,請編程實現將其轉換成”mm/dd/yyyy”加12小時制格式的字符串。
Input
第一行為一個整數T(T<=10),代表總共需要轉換的時間日期字符串的數目。
接下來的總共T行,每行都是一個需要轉換的時間日期字符串。
Output
分行輸出轉換之後的結果
Sample Input
2
2009/11/07-12:12:12
1970/01/01-00:01:01
Sample Output
11/07/2009-12:12:12pm
01/01/1970-12:01:01am

參考代碼

  1. #include <iostream>
  2. #include <string>
  3. #include <iomanip>
  4. using namespace std;
  5. class Calendar{
  6. public:
  7. Calendar(int,int,int,int,int,int);
  8. void print();
  9. private:
  10. int year;
  11. int month;
  12. int day;
  13. int hour;
  14. int minute;
  15. int second;
  16. string apm;
  17. };
  18. Calendar::Calendar(int y,int m,int d,int hh,int mm,int ss){
  19. year = y;
  20. month = m;
  21. day = d;
  22. if(hh >= 12){
  23. hour = hh % 12;
  24. if(hour == 0){
  25. hour = 12;
  26. }
  27. apm = "pm";
  28. }else{
  29. hour = hh;
  30. if(hour == 0){
  31. hour = 12;
  32. }
  33. apm = "am";
  34. }
  35. minute = mm;
  36. second = ss;
  37. }
  38. void Calendar::print(){
  39. cout<<setw(2)<<setfill('0')<<month<<"/"
  40. <<setw(2)<<setfill('0')<<day<<"/"<<year<<"-"
  41. <<setw(2)<<setfill('0')<<hour<<":"
  42. <<setw(2)<<setfill('0')<<minute<<":"
  43. <<setw(2)<<setfill('0')<<second<<apm<<endl;
  44. }
  45. int main(){
  46. int cases;
  47. cin>>cases;
  48. while(cases --){
  49. int y,m,d,hh,mm,ss;
  50. char ch;
  51. cin>>y>>ch>>m>>ch>>d>>ch>>hh>>ch>>mm>>ch>>ss;
  52. Calendar cld(y,m,d,hh,mm,ss);
  53. cld.print();
  54. }
  55. return 0;
  56. }
Copyright © Linux教程網 All Rights Reserved