java编程!输入某年某月,判断这一年与这一月分别距离1900年1月1日多少天?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java编程!输入某年某月,判断这一年与这一月分别距离1900年1月1日多少天?相关的知识,希望对你有一定的参考价值。
程序分析:以2011年5月为例,使用循环计算1900年1月1日距离2011年1月1日的总天数(考虑闰年与平年的情况),再计算2011年1月1日距离5月的总天数.
做出图片中的效果.
目前不要用太沉层的东西。目前我们只学了基础,变量,循环结构!谢谢
import java.util.Scanner;
public class test2
public static void main(String[] args)
Scanner s = new Scanner(System.in);
System.out.print("请选择年份:");
int year = s.nextInt();// 输入的年
System.out.print("请选择月份:");
int month = s.nextInt();// 输入的月
s.close();
int days = 0;// 统计天数
for (int i = 1900; i < year; i++)
days += getDaysByYear(i);
int[] days_each_month = new int[] 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ;
if (isLeepYear(year))
days_each_month[1] = 29;
System.out.println("输入年份距离1900年1月1日的天数:" + days);
for (int i = 0; i < month - 1; i++)
days += days_each_month[i];
System.out.println("输入月份距离1900年1月1日的天数:" + days);
System.out.println("当前月份的天数:" + days_each_month[month]);
// 获得某年的天数
private static int getDaysByYear(int year)
if (isLeepYear(year))
return 366;
else
return 365;
// 判断是否是闰年
private static boolean isLeepYear(int year)
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
运行结果:
请选择年份:2011
请选择月份:5
输入年份距离1900年1月1日的天数:40542
输入月份距离1900年1月1日的天数:40662
当前月份的天数:30 参考技术A 循环就够了
先得到年的天数365*((2011-1900)-1)
在得到当前天数,date.now,然后如果是闰年+1,继续,直到不是,模运算按照整数+1
剩下的就是月了,递增就好了
_ 参考技术B 一定要1990年的吗
输入某年某月某日,判断这一天是这一年的第几天
"""
输入某年某月某日,判断这一天是这一年的第几天?
思路:先判断是否为闰年,这关系到 2 月份的天数。
之后再根据月份值把前几个月的天数累积加起来,最后再加上个“日”,就可以了。
"""""
# 方法一:
# dat = input(‘请输入某年某月某日,格式为 yyyy-mm-dd :‘)
# y = int(dat[0:4]) #获取年份
# m = int(dat[5:7]) #获取月份
# d = int(dat[8:]) #获取日
# ly = False
# if y%100 == 0: #若年份能被100整除
# if y%400 == 0: #且能被400整除
# ly = True #则是闰年
# else:
# ly = False
# elif y%4 == 0: #其它情况下,若能被4整除
# ly = True #则为闰年
# else:
# ly = False
# if ly == True: #若为闰年,则2月份有29天
# ms = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
# else:
# ms = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
# days = 0
# for i in range(1, 13): #从1到12逐一判断,以确定月份
# if i == m:
# for j in range(i-1): #确定月份i之后,则将ms列表中的前i-1项相加
# days += ms[j]
# print(‘%s是该年份的第%s天。‘ % (dat, (days + d)))
# 方法二:
# import datetime
# y = int(input(‘请输入4位数字的年份:‘)) #获取年份
# m = int(input(‘请输入月份:‘)) #获取月份
# d = int(input(‘请输入是哪一天:‘)) #获取“日”
# targetDay = datetime.date(y, m, d) #将输入的日期格式化成标准的日期2019-07-05
# # print(datetime.date(y,m,d))
# dayCount = targetDay - datetime.date(targetDay.year - 1, 12, 31) #减去上一年最后一天 2019-07-05 - 2018-12-31
# # print(dayCount)
# print(‘%s是%s年的第%s天。‘% (targetDay, y, dayCount.days))
以上是关于java编程!输入某年某月,判断这一年与这一月分别距离1900年1月1日多少天?的主要内容,如果未能解决你的问题,请参考以下文章
JAVA 题目:输入某年某月某日,判断这一天是这一年的第几天?