找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2053|回复: 1

[求助] 帮忙找找哪里错了(交互模式下测试函数get_days(year,mmonth).....

1

主题

7

帖子

7

积分

贫民

积分
7
wp231957 发表于 2019-2-27 09:36:18 | 显示全部楼层 |阅读模式
#coding=utf-8
from __future__ import print_function
#利用泰勒公式计算星期几
#w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
def getweek(year,month,day):
    #w        #星期
    #c        #世纪-1 YYYY的头两位
    #y        #年份   YYYY的后两位
    #m        #月份 >=3 1月 2月看成上年的13月 14月
    #d=day    #日
    if month>=3:
        c=year / 100
        y=year % 100
        m=month
    else:
        m=month+12
        y=(year-1) % 100
        c=(year-1) / 100
    w=y+y/4+c/4-2*c+(26*(m+1))/10+day-1
    w=(w+700) %7
    return w

def get_days(year,mmonth):
  rui=[31,29,31,30,31,30,31,31,30,31,30,31]
  ping=[31,28,31,30,31,30,31,31,30,31,30,31]
  ruiflag=0
  if year%4==0 and year%100!=0 or year%400==0:
    ruiflag=1
  if ruiflag==1:
    return rui[mmonth-1]
  return ping[mmonth-1]

print("come in main:")
month=["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"]
title=["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]
year=raw_input("please input year:")     
for i in range(1,13):
  print("%6s"%month[i-1])
  for j in range(1,8):
    print("%10s"%title[j-1],end=' ')
  print(" ")
  flag=0
  #print( year)
  #print (i)
  days=get_days(year,i)
  #print(days)
  for k in range(1,days):
    if(k==1):
      week=6*getweek(year,i,k)
      for j in range(1,week):
        print(" ")
      flag=getweek(year,i,k)
    print("%6d",k)
    if k<7:
      if flag+k==7:
        print("\n      ")
    else :
      if (k+flag)%7==0:
        print("\n      ")
    print("\n        =========================================\n")


回复

使用道具 举报

1

主题

7

帖子

7

积分

贫民

积分
7
wp231957  楼主| 发表于 2019-2-27 09:43:50 | 显示全部楼层
PS E:\> python ex1.py
come in main:
please input year:2019
   JAN
    SUNDAY     MONDAY    TUESDAY  WEDNESDAY   THURSDAY     FRIDAY   SATURDAY
Traceback (most recent call last):
  File "ex1.py", line 49, in <module>
    days=get_days(year,i)
  File "ex1.py", line 29, in get_days
    if year%4==0 and year%100!=0 or year%400==0:
TypeError: not all arguments converted during string formatting
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表