天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

挑戰(zhàn)程序設(shè)計_程序設(shè)計導引及在線實踐之時區(qū)間時間的轉(zhuǎn)換

發(fā)布時間:2016-11-26 14:21

  本文關(guān)鍵詞:程序設(shè)計導引及在線實踐,由筆耕文化傳播整理發(fā)布。


程序設(shè)計導引及在線實踐之時區(qū)間時間的轉(zhuǎn)換

5.5 例題:時區(qū)間時間的轉(zhuǎn)換

問題描述

直到 19世紀,時間校準是一個純粹的地方現(xiàn)象。每一個村莊當太陽升到昀高點的時候把他們的時鐘調(diào)到中午 12點。一個鐘表制造商人家或者村里主表的時間被認為是官方時間,市民們把自家的鐘表和這個時間對齊。每周一些熱心的市民會帶著時間標準的表,游走大街小巷為其他市民對表。在城市之間旅游的話,在到達新地方的時候需要把懷表校準。但是,當鐵路投入使用之后,越來越多的人頻繁地長距離地往來,時間變得越來越重要。在鐵路的早期,時刻表非常讓人迷惑,每一個所謂的停靠時間都是基于?康攸c的當?shù)貢r間。時間的標準化對于鐵路的高效運營變得非常重要。

在 1878年,加拿大人 Sir Sanford Fleming 提議使用一個全球的時區(qū)(這個建議被采納,,并衍生了今天我們所使用的全球時區(qū)的概念),他建議把世界分成 24個時區(qū),每一個跨越 15度經(jīng)線(因為地球的經(jīng)度 360度,劃分成 24塊后,一塊為 15度)。Sir Sanford Fleming的方法解決了一個全球性的時間混亂的問題。

美國鐵路公司于 1883年 11月 18日使用了 Fleming 提議的時間方式。 1884年一個國際子午線會議在華盛頓召開,他的目的是選擇一個合適的本初子午線。大會昀終選定了格林威治為標準的 0度。盡管時區(qū)被確定了下來,但是各個國家并沒有立刻更改他們的時間規(guī)范,在美國,盡管到 1895年已經(jīng)有很多州開始使用標準時區(qū)時間,國會直到 1918年才強制使用會議制定的時間規(guī)范。

今天各個國家使用的是一個 Fleming時區(qū)規(guī)范的一個變種,中國一共跨越了 5個時區(qū),但是使用了一個統(tǒng)一的時間規(guī)范,比 Coordinated Universal Time(UTC,格林威制時間)早 8個小時。俄羅斯也擁護這個時區(qū)規(guī)范,盡管整個國家使用的時間和標準時區(qū)提前了 1個小時。澳大利亞使用 3個時區(qū),其中主時區(qū)提前于他按 Fleming規(guī)范的時區(qū)半小時。很多中東國家也使用了半時時區(qū)(即不是按照 Fleming的 24個整數(shù)時區(qū))。

因為時區(qū)是對經(jīng)度進行劃分,在南極或者北極工作的科學家直接使用了 UTC時間,否則南極大陸將被分解成 24個時區(qū)。

時區(qū)的轉(zhuǎn)化表如下:

UTC Coordinated Universal Time

GMT Greenwich Mean Time, 定義為 UTC

BST British Summer Time, 定義為 UTC+1 hour

IST Irish Summer Time, 定義為 UTC+1 hour 

WET Western Europe Time, 定義為 UTC

WEST Western Europe Summer Time, 定義為 UTC+1 hour 

CET Central Europe Time, 定義為 UTC+1 

CEST Central Europe Summer Time, 定義為 UTC+2 

EET Eastern Europe Time,定義為 UTC+2 

EEST Eastern Europe Summer Time, 定義為 UTC+3 

MSK Moscow Time, 定義為 UTC+3

MSD Moscow Summer Time, 定義為 UTC+4

AST Atlantic Standard Time, 定義為 UTC-4 hours

ADT Atlantic Daylight Time, 定義為 UTC-3 hours

NST Newfoundland Standard Time, 定義為 UTC-3.5 hours 

NDT Newfoundland Daylight Time, 定義為 UTC-2.5 hours 

EST Eastern Standard Time, 定義為 UTC-5 hours

EDT Eastern Daylight Saving Time, 定義為 UTC-4 hours 

CST Central Standard Time, 定義為 UTC-6 hours

CDT Central Daylight Saving Time, 定義為 UTC-5 hours 

MST Mountain Standard Time, 定義為 UTC-7 hours 

MDT Mountain Daylight Saving Time, 定義為 UTC-6 hours 

PST Pacific Standard Time, 定義為 UTC-8 hours 

PDT Pacific Daylight Saving Time, 定義為 UTC-7 hours 

HST Hawaiian Standard Time, 定義為 UTC-10 hours

AKST Alaska Standard Time, 定義為 UTC-9 hours

AKDT Alaska Standard Daylight Saving Time, 定義為 UTC-8 hours 

AEST Australian Eastern Standard Time, 定義為 UTC+10 hours

AEDT Australian Eastern Daylight Time, 定義為 UTC+11 hours

ACST Australian Central Standard Time, 定義為 UTC+9.5 hours

ACDT Australian Central Daylight Time, 定義為 UTC+10.5 hours 

AWST Australian Western Standard Time, 定義為 UTC+8 hours

下面給出了一些時間,請在不同時區(qū)之間進行轉(zhuǎn)化。輸入數(shù)據(jù)輸入的第一行包含了一個整數(shù) N,表示有 N組測試數(shù)據(jù)。接下來 N行,每一行包

括一個時間和兩個時區(qū)的縮寫,它們之間用空格隔開。時間由標準的 a.m./p.m給出。

midnight表示晚上 12點(12:00 a.m.),noon表示中午 12點(12:00 p.m.)。

輸出要求

假設(shè)輸入行給出的時間是在第一個時區(qū)中的標準時間,要求輸出這個時間在第二個時區(qū)中的標準時間。

輸入樣例

noon HST CEST

11:29 a.m. EST GMT

6:01 p.m. CST UTC

12:40 p.m. ADT MSK

輸出樣例

midnight

4:29 p.m.

12:01 a.m.

6:40 p.m.

解題思路

這個題目要求在兩個時區(qū)之間進行時間的轉(zhuǎn)換。我們根據(jù)每個時區(qū)與格林威治時間的轉(zhuǎn)換公式可以推算出兩個時區(qū)之間的差別。問題的解決方法不難想到,只是日期處理類問題具有共同的特點就是輸入輸出比較麻煩,有一些需要特殊處理的情況,例如轉(zhuǎn)換后多出一天或少了一天的情況需要處理。具體到這個題目來說:輸入時,除了一般的時間表示法:時:分

a.m/p.m.之外,要特殊處理 noon和 midnight;在直接通過格林威治時間進行轉(zhuǎn)換后,要判斷是否超過一天或減少了一天的情況;在輸出時間時,要對 noon和 midnight進行特殊處理。

解決這個問題時,關(guān)鍵的是確定兩個時區(qū)之間的時差。因為時區(qū)是用字符串形式給出的,所以要先將時區(qū)對應到該時區(qū)與格林威治時間的時差上。有了每個時區(qū)與格林威治時間的時差,就可以計算任意兩個時區(qū)之間的時差。

參考程序

#include

  本文關(guān)鍵詞:程序設(shè)計導引及在線實踐,由筆耕文化傳播整理發(fā)布。



本文編號:194671

資料下載
論文發(fā)表

本文鏈接:http://www.sikaile.net/wenshubaike/xxkj/194671.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶845c0***提供,本站僅收錄摘要或目錄,作者需要刪除請E-mail郵箱bigeng88@qq.com