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

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

程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

程序设计:

import java.util.*;
public class test {
  public static void main (String[]args){
    int day=0;
    int month=0;
    int year=0;
    int sum=0;
    int leap; 
    System.out.print("请输入年,月,日\n"); 
    Scanner input = new Scanner(system.in);
    year=input.nextInt();
    month=input.nextInt();
    day=input.nextInt();
    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:
      System.out.println("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++; 
    System.out.println("It is the the day:"+sum);
    }
}

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...