zoukankan      html  css  js  c++  java
  • 用循环写万年历

    """
    万年历
    a,请输入提示语句,输入年,月
    b,根据用户输入的年,判断是否为闰年
    c,根据用户输入的月,来判断天数
    d,用循环计算 用户输入的年份距1900年1月1日的总天数
    e,用循环计数计算用户输入的月份距输入年份的1月1日有多少天
    f,相加d  e 的天数 得到总天数
    g,用总天数来计算输入月的第一天的星期数
    h,根据g的值格式化输出这个月的日历
    """
    
    
    year =int(input("please input a year-number:"))  #请输入提示语句,输入年
    
    
    num_day = 0                                                #到输入的月份之前有多少天
    day_num = [31,28,31,30,31,30,31,31,30,31,30,31]            #每月有多少天---列表
    if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0): #根据用户输入的年,判断是否为闰年
        day_num[1] = 29
    else:
        day_num[1] = 28
    #print(day_num)
    month =int (input("please input a month-number:"))   #请输入提示语句,输入月
    for n in range(0,month -1):
        num_day += day_num[n]
        #print(num_day)
                                                 #用循环计数计算用户输入的月份距输入年份的1月1日有多少天
    # print(num_day)                     #根据用户输入的月,来判断天数
    
    # day = int(input("please input day number:"))
    
    run_year_num = []
    ping_year_num = []
    ping_day = 365
    run_day = 366
    day_instance = 0                    #1900 ---你输入的年份的总天数
    for f in range(1900,year):
        if f % 400 == 0 or (f % 4 == 0 and f % 100 != 0):
            run_year_num.append(f)
        else:
            ping_year_num.append(f)
    # print(run_year_num)
    # print(ping_year_num)
    
    if year == 1900:
        day_instance = num_day
    else:
        day_instance = 365*len(ping_year_num) + 366*len(run_year_num) + num_day         #用循环计算 用户输入的年份距1900年1月1日的总天数
    # print(day_instance)
    print("星期日	星期一	星期二	星期三	星期四	星期五	星期六")
    space = 0
    w = (day_instance - 6) % 7                     #1号是周几
    for i in range(1,w +1):
        print("		",end="")
        space += 1
    for j in range(1,day_num[month - 1] + 1):
        print(j,"		",end ="")
        space += 1
        if  space % 7 == 0:
            print("")
    

      

  • 相关阅读:
    Silverlight中使用MVVM(2)-(提高)
    Silverlight中使用MVVM(1)--基础
    数据库设计 Step by Step (2)——数据库生命周期
    数据库设计 Step by Step (1)——扬帆启航
    心火肝火胃火肺火的症状区别及治疗方法
    ESP8266 wifi 模块配置,Wechat+APP控制实现
    PCB名詞解釋:通孔、盲孔、埋孔(转载)
    123
    电子称DIY(贴应变片+写代码)
    STM32常见问题
  • 原文地址:https://www.cnblogs.com/lcc1234/p/11255916.html
Copyright © 2011-2022 走看看