这篇文章主要介绍“C语言如何实现古代时辰计时与现代时间换算”,在日常操作中,相信很多人在C语言如何实现古代时辰计时与现代时间换算问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言如何实现古代时辰计时与现代时间换算”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
示例如下:
另外需要了解时辰是各地时间,对北京时有纬度差。
调整的公式是: 时辰起点+4*(Z-B) 分钟( Z是北京中央经度,B是当地的经度。)
如:天水时辰 =23点 +4*(120-105.7)分。
得:23 +4 * 14.3 = 23+57.2 =23点57分12秒。
以北京时间来换算,北京是东经120度,当地经度是105.7度。
此公式用于地方时辰调整。
以下是算法测试的源码文档(供参考):
thansform ( ){ //古时时辰计时换算 int tim[3] ;
string hhs,kks,ffs,ccs ; //预置字串
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 ; //余数
// 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 "---------------------------------------------------" ;
//时辰计时转换为时钟时间
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 ; //计算小时数
s2=subString (s1, 1, 1) ;
if (s2=="初") { ns=0 ; }else{ ns=1 ; }
hh0=hh0+ns ; //正加一小时
s2=subString (s1, 2, 1) ;
if (s2=="一") ns1=15 ; //还原几刻的分钟数
if (s2=="二") ns1=30 ;
if (s2=="三") ns1=45 ;
n=(mm0-mm0/15*15) ; //原输入分的尾数
mm0=ns1+n ; //计算分钟数
hh0s=intToString (hh0) ; //format
if (hh0<10) hh0s="0"+hh0s ;
mm0s=intToString (mm0) ;
if (mm0<10) mm0s="0"+mm0s ;
print " " ;
print "换算为现在时间: ", hh0s, " : ", mm0s ;
}//时辰换算
到此,关于“C语言如何实现古代时辰计时与现代时间换算”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://blog.csdn.net/baidu_41801770/article/details/129733143