【经典100题】题目4 年月日判断是年份的第几天

题目

输入某年某月某日,判断这一天是这一年的第几天?


c语言实现

#include "stdio.h"
#include "conio.h"

void main()
{
	int day, month, year, sum, leap;	
	printf("请输入年:");
	scanf("%d", &year);
	printf("请输入月:");
	scanf("%d", &month);
	printf("请输入日: ");
	scanf("%d", &day);
	switch (month) /*先计算某月以前月份的总天数*/
	{
	case 1:sum = 0;    break;
	case 2:sum = 31;   break;
	case 3:sum = 59;   break;
	case 4:sum = 90;   break;
	case 5:sum = 120;  break;
	case 6:sum = 151;  break;
	case 7:sum = 181;  break;
	case 8:sum = 212;  break;
	case 9:sum = 243;  break;
	case 10:sum = 273; break;
	case 11:sum = 304; break;
	case 12:sum = 334; break;
	default:printf("data error"); break;
	}
	sum = sum + day; /*再加上某天的天数*/
	if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) /*判断是不是闰年*/
		leap = 1;
	else
		leap = 0;
	if (leap == 1 && month>2) /*如果是闰年且月份大于 2,总天数应该加一天*/
		sum++;
	printf("这是当年的第%d天.", sum);
	getch();
}

 


Python语言实现

import math

#判断是平年还是闰年
def isLeapYear(year):
    result1 = year / 100
    result2 = year / 4
    result3 = year / 400
    if math.floor(result1) == result1: 
        if math.floor(result3) == result3:
            return 1
        else:
            return 0
    else:
        if math.floor(result2) == result2:
            return 1
        else:
            return 0

#如果是一月
def count1month(day):
    return day;
#如果是二月
def count2month(day):
    return 31+day;
#如果是3月
def count3month(day):
    return 59+day;
#如果是4月
def count4month(day):
    return 90+day;
#如果是5月
def count5month(day):
    return 120+day;
#如果是6月
def count6month(day):
    return 151+day;
#如果是7月
def count7month(day):
    return 181+day;
#如果是8月
def count8month(day):
    return 212+day;
#如果是9月
def count9month(day):
    return 243+day;
#如果是10月
def count10month(day):
    return 273+day;
#如果是11月
def count11month(day):
    return 304+day;
#如果是12月
def count12month(d):
    return 334+d;
#判断用户是否输入正确
def correctinput():
    if isLeapYear(year) == 1:
        print("当年是闰年")
        if month == 1:
            print("这是当年的第:",count1month(day),"天")
        if month == 2:
            print("这是当年的第:",count2month(day),"天")
        if month == 3:
            print("这是当年的第:",count3month(day)+1,"天")
        if month == 4:
            print("这是当年的第:",count4month(day)+1,"天")
        if month == 5:
            print("这是当年的第:",count5month(day)+1,"天")
        if month == 6:
            print("这是当年的第:",count6month(day)+1,"天")
        if month == 7:
            print("这是当年的第:",count7month(day)+1,"天")
        if month == 8:
            print("这是当年的第:",count8month(day)+1,"天")
        if month == 9:
            print("这是当年的第:",count9month(day)+1,"天")
        if month == 10:
            print("这是当年的第:",count10month(day)+1,"天")
        if month == 11:
            print("这是当年的第:",count11month(day)+1,"天")
        if month == 12:
            print("这是当年的第:",count12month(day)+1,"天")
        
    else:
        print("当年是平年")
        if month == 2 and day == 29:
            print("当年是平年,没有2月29日,输入错误!")#提示错误信息
        else:   
            if month == 1:
                print("这是当年的第:",count1month(day),"天")
            if month == 2:
                print("这是当年的第:",count2month(day),"天")
            if month == 3:
                print("这是当年的第:",count3month(day),"天")
            if month == 4:
                print("这是当年的第:",count4month(day),"天")
            if month == 5:
                print("这是当年的第:",count5month(day),"天")
            if month == 6:
                print("这是当年的第:",count6month(day),"天")
            if month == 7:
                print("这是当年的第:",count7month(day),"天")
            if month == 8:
                print("这是当年的第:",count8month(day),"天")
            if month == 9:
                print("这是当年的第:",count9month(day),"天")
            if month == 10:
                print("这是当年的第:",count10month(day),"天")
            if month == 11:
                print("这是当年的第:",count11month(day),"天")
            if month == 12:
                print("这是当年的第:",count12month(day),"天")
               
try:
    #提示用户输入年月日
    year = int(input("请输入年:"))
    month = int(input("请输入月:"))
    day = int(input("请输入日:"))

    if month>12 or month <1 or day >31 or day<0 or year<0:
        print("输入信息有误,请重新输入!")
    else:
        correctinput()

except:
    print("输入错误!")

★finished by songpl,2018.11.28

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值