欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言實現(xiàn)古代時辰計時與現(xiàn)代時間換算

 更新時間:2023年03月30日 10:17:07   作者:老花眼貓  
這篇文章主要為大家詳細(xì)介紹了如何利用C語言實現(xiàn)古代時辰計時與現(xiàn)代時間換算,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下

本人對各種算法感興趣,喜歡做一些算法題??赡苡信笥褜糯鷷r辰計時與現(xiàn)在時間換算感興趣,我就設(shè)計了此一種算法。

關(guān)于古代的時間表達(dá)法,也就是十二時辰法,從子丑......亥十二個時辰計時由來以久,自古以來就用此法計時,但對每個時辰分幾刻,有變遷,主要有十二時辰分百二十刻和分為一百刻兩種。古代長期使用的是百刻制。明末西方天文學(xué)傳入,到清朝確定每日九十六刻,每刻十五分鐘,開始與世界通行時間接軌。

各分刻法對計時沒什么差別,就是計數(shù)而已。

唐以前一個時辰分十刻或八刻,唐以后明確為八刻,每時辰前四刻為初,后四刻為正,如辰初一刻( 07:15 ),辰正二刻  ( 08:30 )。時辰開始不滿一刻為初,如申初初刻 ( 15:05 ) 。

作為民間計時幾時幾刻就行了,不需很精確。然對于天文地理大事,就需精確表達(dá)時間。對于歷史研究和考古研究需了解此情況。

還有一較精確的分法,將一刻分為三,每份等于現(xiàn)在的5分鐘,稱為”字”,不滿字為余。我就依此設(shè)計換算方法。不需要的可略去。

示例如下:

另外需要了解時辰是各地時間,對北京時有緯度差。

調(diào)整的公式是: 時辰起點(diǎn)+4*(Z-B) 分鐘(   Z是北京中央經(jīng)度,B是當(dāng)?shù)氐慕?jīng)度。)

如:天水時辰  =23點(diǎn)  +4*(120-105.7)分。

得:23 +4 * 14.3 = 23+57.2 =23點(diǎn)57分12秒。

以北京時間來換算,北京是東經(jīng)120度,當(dāng)?shù)亟?jīng)度是105.7度。

此公式用于地方時辰調(diào)整。 

以下是算法測試的源碼文檔(供參考):

thansform ( ){    //古時時辰計時換算 int  tim[3] ;
 string hhs,kks,ffs,ccs ;     //預(yù)置字串
 string hh0s, mm0s ;
 string chh, hhk, hhf, wwf, mcs ;   //時刻分,名稱
 string hhcz ;        //子時初,正
 string s1,s2,s3,s4;
   ccs="雞鳴平旦日出食時隅中日中日昳晡時日入黃昏人定夜半" ;
   hhs=    "丑寅卯辰巳午未申酉戌亥子" ;
   kks=    "初刻一刻二刻三刻" ;
   ffs=    "一字二字三字四" ;

    setDisplay (0);   
    clearOutput ( ) ;
     print "古時計時時辰換算示例:"  ;
    getTime(tim);    //getDate = today
     pickTime("輸入時間:", tim);       //input rime
    hh0=tim[0] ;
    mm0=tim[1] ;
    print "  " ;
    chh=subString (hhs, (hh0+1)/2-1, 1) ;
    if (hh0-hh0/2*2==0) { hhcz="正" ;  }       
                      else{  hhcz="初" ;  }
    chh=chh+hhcz ;                   //時
    hhk=subString (kks, mm0/15*2, 2 ) ;   //刻

    n=(mm0-mm0/15*15)/5 ;         //余數(shù)
   // hhf=subString (ffs, (n-1)*2, 2) ;       //分=字
   // if (n==0) hhf=" " ;
   // ns=mm0-mm0/15*15-n*5 ;   //余=分減刻減字
    //wwf=subString (ffs, (ns-1)*2, 1) ;
    //21 : 43   =>>  亥初二刻二字三

      //  for (i=0; i<12 ; i++) {     //測試古時稱謂
        //    s3=subString (hhs, i, 1 ) ;
         //   s2= s2+s3+"    " ;         }
         //print s2 ;       // test print  ccs$
         //print  ccs ;

         hh0s=intToString (hh0) ;
         mm0s=intToString (mm0) ;
       if (mm0<10) mm0s="0"+mm0s ;
       if (mm0==0) hhk=" " ;

    mcs=subString (ccs, (hh0+1)/2*2-2,  2) ;   //名稱
    print "Input Time =  " +hh0s+" : "+ mm0s ;
    print "  " ;
    print "換算為古時計時:" ;
    print "   " ;
    print "    " + chh+hhk+hhf+wwf+"    "+mcs ;
    print "---------------------------------------------------" ;


//時辰計時轉(zhuǎn)換為時鐘時間
int ns, ns1 ;
       s1=chh+hhk ;      //輸入時,分
       s2=subString (s1, 0, 1) ;
        for (i=0; i<12 ; i++) {
            s3=subString (hhs, i, 1 ) ;
          if(s3==s2) ns=i ;              }
       print "  " ;
       print "Input :  "+s1 ;
         hh0=ns*2+1 ;        //計算小時數(shù)
     s2=subString (s1, 1, 1) ;
         if (s2=="初") { ns=0 ; }else{ ns=1 ; }
         hh0=hh0+ns ;    //正加一小時
     s2=subString (s1, 2, 1) ;
         if (s2=="一") ns1=15 ;     //還原幾刻的分鐘數(shù)
         if (s2=="二") ns1=30 ;
         if (s2=="三") ns1=45 ;
     n=(mm0-mm0/15*15) ;    //原輸入分的尾數(shù)
     mm0=ns1+n ;                     //計算分鐘數(shù)
         hh0s=intToString (hh0) ;    //format
      if (hh0<10) hh0s="0"+hh0s ;
         mm0s=intToString (mm0) ;
      if (mm0<10) mm0s="0"+mm0s ;
      print "   " ;
      print "換算為現(xiàn)在時間:  ", hh0s, " : ", mm0s ;
           
}//時辰換算 

到此這篇關(guān)于C語言實現(xiàn)古代時辰計時與現(xiàn)代時間換算的文章就介紹到這了,更多相關(guān)C語言時辰計時與現(xiàn)代時間換算內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言實現(xiàn)直方圖均衡化

    C語言實現(xiàn)直方圖均衡化

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)直方圖均衡化,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • C語言的變量與常量 字符字符串與轉(zhuǎn)義字符詳解

    C語言的變量與常量 字符字符串與轉(zhuǎn)義字符詳解

    這篇文章主要介紹了詳解C語言的變量與常量 字符字符串與轉(zhuǎn)義字符,包括其之間的區(qū)別是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2021-10-10
  • C++調(diào)用EasyX庫實現(xiàn)嫦娥奔月小游戲

    C++調(diào)用EasyX庫實現(xiàn)嫦娥奔月小游戲

    這篇文章主要為大家詳細(xì)介紹了C++如何調(diào)用EasyX庫編寫一個簡單的嫦娥奔月小游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下
    2023-09-09
  • C++實現(xiàn)String類實例代碼

    C++實現(xiàn)String類實例代碼

    這篇文章主要介紹了C++實現(xiàn)String類實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • C++ this指針和空指針的具體使用

    C++ this指針和空指針的具體使用

    這篇文章主要介紹了C++ this指針和空指針的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • C++中String的語法及常用接口的底層實現(xiàn)詳解

    C++中String的語法及常用接口的底層實現(xiàn)詳解

    在C語言中,string是一個標(biāo)準(zhǔn)庫類(class),用于處理字符串,它提供了一種更高級、更便捷的字符串操作方式,string 類提供了一系列成員函數(shù)和重載運(yùn)算符,以便于對字符串進(jìn)行操作和處理,本編文章會對C++中的 string 進(jìn)行詳解,希望本篇文章會對你有所幫助
    2023-06-06
  • c語言如何設(shè)置隨機(jī)數(shù)及逐行解析

    c語言如何設(shè)置隨機(jī)數(shù)及逐行解析

    在C語言中,rand()函數(shù)可以用來產(chǎn)生隨機(jī)數(shù),但是這不是真真意義上的隨機(jī)數(shù),是一個偽隨機(jī)數(shù),下面這篇文章主要給大家介紹了關(guān)于c語言如何設(shè)置隨機(jī)數(shù)及逐行解析的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 關(guān)于C++中菱形繼承和虛繼承的問題總結(jié)

    關(guān)于C++中菱形繼承和虛繼承的問題總結(jié)

    C++的三大特性為:封裝,繼承,多態(tài)。但是在繼承中,存在一些使用方面的問題需要注意,下面這篇文章主要給大家總結(jié)介紹了關(guān)于C++中菱形繼承和虛繼承的問題,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • C 語言基礎(chǔ)教程(我的C之旅開始了)[三]

    C 語言基礎(chǔ)教程(我的C之旅開始了)[三]

    C 語言基礎(chǔ)教程(我的C之旅開始了)[三]...
    2007-02-02
  • C語言關(guān)鍵字auto與register的深入理解

    C語言關(guān)鍵字auto與register的深入理解

    本篇文章是對c語言關(guān)鍵字auto與register的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05

最新評論