根据一个新加坡人的c代码改写成python代码

 ''' 四分历'''

 #
zq = 0
month = 0 def main():
global month
year = 1
rb_year = 0
moon = 0 # number of new moon since beginning of ru bu year.
tmonth = 0
continues = False while year != 0:
year = int(input("\nPlease Enter a year to do computation (range:85~236, 0 to exit):")) if year == 0:
return
if year < 85 or year > 236:
print("\nCalculation of Si Fen Li doesn't apply to your input value.")
input("\nPress Enter to continue.")
#getch(continues);
continue rb_year = (year + 9281) % 76
tmonth = 14 + Leap_y(rb_year) print("月\t朔\t望\t长度\t中气\t时间\t时间\t时间")
print("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -") month = 11
#zq = 0
for moon in range(1, tmonth + 1):
if moon % 8 == 0:
#print("\n")
pass
print_s(rb_year, moon)
month += 1
if month > 12:
month = 1 input("\nPress Enter to continue.") # 润年
def Leap_y( rbyear):
isLeap = 0
if ((rbyear - 1) * 235 ) % 19 >= 12:
isLeap = 1
return isLeap # 润月
def Leap_m(rbyear, month):
isLeap = 0
completed_month = (rbyear - 1) * (235.0/19.0) + (month - 1)
acd_first = (completed_month * (29.0+499.0/940.0) )
acd_last = ((completed_month + 1.0) * (29.0+499.0/940.0) )
qi_first = int(acd_first)/(30.0+14.0/32.0)
qi_last = int(acd_last) / (30.0+14.0/32.0) if qi_first - int(qi_first) != 0:
if int(qi_first) == int(qi_last) or qi_last == int(qi_last):
isLeap = 1 return isLeap # 打印结果
def print_s(rbyear, moon):
global zq
global month
name_s = acd_shuo(rbyear, moon)
name_w = acd_wang(rbyear, moon)
time_s = ( acd_shuo(rbyear, moon) - float(name_s) ) * 24.0
time_w = ( acd_wang(rbyear, moon) - float(name_w) ) * 24.0
length = int(acd_shuo(rbyear, moon + 1)) - name_s if Leap_m(rbyear, moon) == 0: #if is not a leap month.
zq += 1
name_q = acd_qi(rbyear, zq);
time_q = ( acd_qi(rbyear, zq) - (float)(name_q) ) * 24.0
print("{}\t1\t{:.1f}\t{:.3f}\t{:.1f}\t{:.3f}\t{:.3f}\t{:.1f}".format(month, time_s, name_w - name_s + 1, time_w, length, name_q - name_s + 1, time_q))
else:
month -= 1
print("{}(Leap)\t1\t{:.1f}\t{:.3f}\t{:.1f}\t{:.3f}".format(month, time_s, name_w - name_s + 1, time_w, length)) # 朔
def acd_shuo(rbyear, moon):
completed_month = ((rbyear - 1) * 235 / 19) + moon - 1
return completed_month * (29.0+499.0/940.0) # 望
def acd_wang(rbyear, moon):
completed_month = ((rbyear - 1) * 235 / 19) + moon - 1
return (completed_month + 0.5) * (29.0+499.0/940.0) # 气
def acd_qi(rbyear, qi):
completed_qi = ((rbyear - 1) * 12) + qi - 1
return completed_qi * (30.0+14.0/32.0) if __name__ == '__main__':
main()

四分历python实现的更多相关文章

  1. Python 历遍目录

    Automate the Boring Stuff 学习笔记 01 使用 os 模块的 walk() 函数可以实现历遍目录的操作,该函数接收一个绝对路径字符串作为必选参数,返回三个参数: 当前目录—— ...

  2. python笔记4-遍历文件夹目录os.walk()

    前言 如何遍历查找出某个文件夹内所有的子文件呢?并且找出某个后缀的所有文件 walk功能简介 1.os.walk() 方法用于通过在目录树种游走输出在目录中的文件名,向上或者向下. 2.walk()方 ...

  3. python学习历程之split()方法获取cmd mysql 结果集

    if __name__=='__main__': FServerId = raw_input("Please input source id:") GetFileKey(FServ ...

  4. 使用Python进行描述性统计

    目录 1 描述性统计是什么?2 使用NumPy和SciPy进行数值分析 2.1 基本概念 2.2 中心位置(均值.中位数.众数) 2.3 发散程度(极差,方差.标准差.变异系数) 2.4 偏差程度(z ...

  5. python与ruby的差别

    1.引用文件差别 Ruby:同一目录下的文件,如/usr/local/ruby/foo.rb与/usr/local/ruby/bar.rb两个文件.如果直接在foo.rb中 require 'bar' ...

  6. python学习笔记:Day02

    一.列表(list) 1.定义一个列表 name=["tom","jerry","12","13","lose ...

  7. 【转】你真的理解Python中MRO算法吗?

    你真的理解Python中MRO算法吗? MRO(Method Resolution Order):方法解析顺序. Python语言包含了很多优秀的特性,其中多重继承就是其中之一,但是多重继承会引发很多 ...

  8. Python全栈之路---运算符与基本的数据结构

    运算符 一.算术运算符: 练习: + 加法 两个对象相加 1 + 2得到3:'a' + 'b'得到'ab'. - 减法 一个数减去另一个数或者是负数 5 - 3得到2:-2得到一个负数 * 乘法 两个 ...

  9. Python简史

    Python简史 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python是我喜欢的语言,简洁,优美,容易使用.前两天,我很激 ...

随机推荐

  1. 3D打印材料的发展现状(1)

    材料是3D打印的物质基础,也是当前制约3D打印发展的瓶颈. 3D打印材料 3D打印材料是3D打印技术发展的重要物质基础,材料的发展对于3D打印的发展有重要的作用. 目前,3D打印材料主要包括工程塑料. ...

  2. 一个好玩的计算题目(c++ 位运算)

    2015/11/10 在一个qq群里面,看到一个好玩的题目.“int foo(int x){return x&-x}   foo(2^31-3)这个怎么算 ?” 1.自己也就开始算了: (1) ...

  3. 关于cocos2dx的textfield事件响应

    time:2015/08/27 1. textfiled cocostudio的输入框,看源代码知道他是直接继承widget的,但是真正的输入框功能是label实现的,是Textfield类的一个成员 ...

  4. Log Structured Merge Trees (LSM)

    1      概念 LSM = Log Structured Merge Trees 来源于google的bigtable论文. 2      解决问题 传统的数据库如MySql采用B+树存放数据,B ...

  5. exits, in, left join性能比较

    exits  in left join性能比较 ,笔者使用的是MYSQL数据库,这三个关键字方法在其他的关系数据库里也是大同小异,如果各种有兴趣,自行比较. 我这里有一个249_account 表,总 ...

  6. 新手指南:Linux上vi(vim)编辑器使用教程

    vi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率.vi是“visual interface”的缩 ...

  7. Nginx总结.md

    基本配置 注意:下面的nginx版本是1.10,安装是在CentOS 7中通过epel源进行安装的nginx默认配置文件. # egrep -v "(^$)|(^#)|#" /et ...

  8. 如何用代码而非事件触发PBO

    通常我们通过抛出事件触发PBO,但若没有事件发生时,我们其实也可以用代码强制发出命令. 写法如下: CL_GUI_CFW=>SET_NEW_OK_CODE( NEW_CODE = <uco ...

  9. 2018 - 2019 CTU Open Contest E. Locker Room 【后缀数组】

    任意门:http://codeforces.com/gym/101954/problem/E E. Locker Room time limit per test 2.0 s memory limit ...

  10. 在linux中禁用一块硬盘

    笔记本采用固态加机械的硬盘组合使用中完全用不到机械部分 但它总是在启动后运行并发出响声 1 启动后的禁用 无需重启 (sdx是你的磁盘  udev的更新可能会导致磁盘重新出现 在向系统添加/删除磁盘也 ...