您的位置:首页 > 编程语言 > Java开发

Java中计算出某个日期是一年当中的第几天

2018-06-21 00:03 169 查看

Java中计算出某个日期是一年当中的第几天

在网上看到有一位网友提问:

  • 接受用户输入一个月份和一个日期如:3 21表示输入的是3月21号计算出3月21日是一年当中的第几天。请严格遵守历法。。    
  • 1、完成功能。 
  • 2、在完成第一步的情况,请考虑闰年问题。用户要输入年月日三个整数。
  • 3、在完成第二步的前提下,请考虑输入非法的问题。

运行结果:


/**
*
*/
package first;

import java.util.Scanner;

/**
* @author HD
*
*/
public class Datemain {

/**
* @param args
*/
public static void main(String[] args) {
System.out.println("接受用户输入一个月份和一个日期,计算出是一年当中的第几天");
System.out.println("\t输入月份后,按下回车,再输入日期");
System.out.println("\n请输入4位数年份:");
while(true) {
int year,month,day = 0,x,i,j,sum = 0,cal=0;
Scanner scaner = new Scanner(System.in);
year = scaner.nextInt();
if(year%4 == 0 && year%100 != 0 || year%400 == 0) {
System.out.println("请输入月份:");
month= scaner.nextInt();
if(month == 2){
System.out.println("请输入日期:");
day= scaner.nextInt();
while(day > 30 || day < 1) {
System.out.println("输入有误,重新输入日期:");
x =scaner.nextInt();
day = x;
}
}
if(month % 2 != 0){
System.out.println("请输入日期:");
day= scaner.nextInt();
while(day > 31 || day < 1) {
System.out.println("输入有误,重新输入日期:");
x =scaner.nextInt();
day = x;
}
}
if(month !=2 && month % 2 == 0){
System.out.println("请输入日期:");
day= scaner.nextInt();
while(day > 30 || day < 1) {
System.out.println("输入有误,重新输入日期:");
x =scaner.nextInt();
day = x;
}
}
System.out.println( "您输入的是:" + year+"年"+ month + "月" + day + "日");
int arr[] = {31,29,31,30,31,30,31,30,31,30,31,30};
for(i = 0;i < month-1; i++) {
sum += arr[i];
}
cal = sum + day;
System.out.println( year+"年"+ month + "月" + day + "日"+"是" + year+ "年" + "中第" + cal + "天" );
}
else {
System.out.println("请输入月份:");
month= scaner.nextInt();
if(month == 2){
System.out.println("请输入日期:");
day= scaner.nextInt();
while(day > 29 || day < 1) {
System.out.println("输入有误,重新输入日期:");
x =scaner.nextInt();
day = x;
}
}
if(month % 2 != 0){
System.out.println("请输入日期:");
day= scaner.nextInt();
while(day > 31 || day < 1) {
System.out.println("输入有误,重新输入日期:");
x =scaner.nextInt();
day = x;
}
}
if(month !=2 && month % 2 == 0){
System.out.println("请输入日期:");
day= scaner.nextInt();
while(day > 30 || day < 1) {
System.out.println("输入有误,重新输入日期:");
x =scaner.nextInt();
day = x;
}
}
System.out.println( "您输入的是:" + year+"年"+ month + "月" + day + "日");
int arr[] = {31,29,31,30,31,30,31,30,31,30,31,30};
for(i = 0;i < month-1; i++) {
sum += arr[i];
}
cal = sum + day;
System.out.println( year+"年"+ month + "月" + day + "日"+"是" + year+ "年" + "中第" + cal + "天" );
System.out.println("\n请继续输入4位数年份:");
}
}
}
}

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐