根据一个新加坡人的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. Java中对文件的序列化和反序列化

    public class ObjectSaver { public static void main(String[] args) throws Exception { /*其中的 D:\\objec ...

  2. Oracle GoldenGate OGG管理员手册(较早资料)

    第一章 系统实现简述 前言 编写本手册的目的是为系统管理员以及相关操作人员提供 Oracle  Goldengat  软 件的日常维护和使用的技术参考: 3 ORACLE 第二章 OGG 日常维护操作 ...

  3. 转:未能打开编辑器:Unmatched braces in the pattern.

    原文地址:http://blog.csdn.net/hytdsky/article/details/4736462 Eclipse出现这个问题而不能查看源代码  原因就是语言包的问题 出现这个问题了 ...

  4. Oracle重启操作步骤

    有时候在服务中重启了oracle之后,数据库并不能正常访问,可以通过以下步骤: 在windows服务中启动数据库服务: 在windows命令窗口中输入命令:sqlplus /nolog 在sql> ...

  5. 铁乐学python_Day42_线程池

    铁乐学python_Day42_线程池 concurrent.futures 异步调用模块 concurrent.futures模块提供了高度封装的异步调用接口 ThreadPoolExecutor: ...

  6. SpringBoot部署流程

    一.  项目介绍 a)     本项目为SpringBoot项目 b)     使用内置Tomcat容器 一.  操作步骤 a)     配置pom.xml文件,确定打包方式 b)     更改项目返 ...

  7. PHP Redis 全部操作方法 转载

    PHP Redis 全部操作方法   Classes and methods Usage Class Redis Class RedisException Predefined constants C ...

  8. React Native 基础报错及解决方案记录

    刚开始上手RN,碰到很多坑,记录一下.碰到问题多去看看github上面的issue! 启动命令react-native run-ios报错 1.:xcrun: error: unable to fin ...

  9. vue部署到tomcat

    # vue打包到tomcat部署步骤a.进入项目目录运行npm run devb.将dist目录复制到远程服务器下的tomcat/webapps下c.重启tomcatd.浏览器中访问 http:本机i ...

  10. BZOJ4180:字符串计数(SAM,二分,矩阵乘法)

    Description SD有一名神犇叫做Oxer,他觉得字符串的题目都太水了,于是便出了一道题来虐蒟蒻yts1999. 他给出了一个字符串T,字符串T中有且仅有4种字符 'A', 'B', 'C', ...