题目:输入某年某月某日,判断这一天是这一年的第几天?
解题思路:1.第几天 = 当月的天数+前面月份的总天数(例外:闰年大于等于三月多一天)
2.第几天 = 当天的日期 - 上一年的最后一天的日期
python:
1.
L = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
y = int(input("Please enter the years:\n"))
m = int(input("Please enter the month:\n"))
d = int(input("Please enter the day:\n"))
if (y % 400 == 0) or ((y % 4 == 0) and (y % 100 != 0)):
if (m > 2):
sum = L[m-1] + d + 1
else:
sum = L[m-1] + d
else:
sum = L[m - 1] + d
print(sum)
2.
import datetime
L = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
y = int(input("Please enter the years:\n"))
m = int(input("Please enter the month:\n"))
d = int(input("Please enter the day:\n"))
nowday = datetime.date(y, m, d)
sumdays = nowday - datetime.date(nowday.year-1, 12, 31)
print(sumdays)
java:
import java.util.GregorianCalendar;
import java.util.Scanner;
public class Hua{
public static void main(String[] args) {
Scanner s1 = new Scanner(System.in);
System.out.println("Please enter your year:\n");
int y = s1.nextInt();
System.out.println("Please enter your month:\n");
int m = s1.nextInt();
System.out.println("Please enter your day:\n");
int d = s1.nextInt();
//判断是否是闰年
GregorianCalendar gre = new GregorianCalendar();
boolean isLeapYear = gre.isLeapYear(y);
//判断2月份的天数
int fedays = isLeapYear ? 29:28;
int days = 0;
switch (m) {
case 1:
days = d;
break;
case 2:
days = 31 + d;
break;
case 3:
days = 31 + fedays + d;
break;
case 4:
days = 31 + fedays + 31 + d;
break;
case 5:
days = 31 + fedays + 31 + 30 + d;
break;
case 6:
days = 31 + fedays + 31 + 30 + 31 + d;
break;
case 7:
days = 31 + fedays + 31 + 30 + 31 + 30 + d;
break;
case 8:
days = 31 + fedays + 31 + 30 + 31 + 30 + 31 + d;
break;
case 9:
days = 31 + fedays + 31 + 30 + 31 + 30 + 31 + 31 + d;
break;
case 10:
days = 31 + fedays + 31 + 30 + 31 + 30 + 31 + 31 + 30 + d;
break;
case 11:
days = 31 + fedays + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + d;
break;
case 12:
days = 31 + fedays + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + d;
break;
default:
System.out.println("月份输入错误!");
break;
}
System.out.println(days);
}
C:
#include <stdio.h>
int main()
{
int day, month, year, sum;
printf ("请输入xxxx年xx月xx日:\n");
scanf ("%d年%d月%d日", &year, &month, &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("Error!");
break;
}
sum = sum + day;
if ((year%400 == 0) || ((year%4 == 0) && (year%100 != 0))){
if (month > 2)
{
sum += 1;
}
}
printf("这是第%d天", sum);
return 0;
}