/**
* 给出年分m和一年中的第n天,算出第n天是几月几号。
* @author 小高
* @date 2013-08-24
*
*/
public class date1 {
public static void main(String[] args) {
System.out.println("请输入年份:");
Scanner input=new Scanner(System.in);
int year =input.nextInt();
System.out.println("请输入第几天:");
int day=input.nextInt();
int SumDays=0;
int month[]={31,28,31,30,31,30,31,31,30,31,30,31}; //12个月的天数
if(year%400==0||(year%4==0&& year%100!=0)){
month[1]=29;
SumDays=366;
}else{
SumDays=365;
}
while(day>SumDays){ //如果总天数大于当年的总体天数 则执行此循环
year+=1;
if(year%400==0||(year%4==0&& year%100!=0)){
month[1]=29;
SumDays=366;
}else{
SumDays=365;
}
day=day-SumDays;
}
int WhichDay=0; //哪天
int count=0;
int WhichMonth=1; //哪个月
for(int i=0;i<month.length;i++){
int nextCount=0;
count+=month[i]; //包括当前月之前的总天数
if(i<11) //防止数组越界
nextCount=count+month[i+1]; //包括 下一个月的之前总天数
if(day>count){ //如果输入的天数大于当前月之前总天数,则月份加1 从一月份31开始
WhichMonth++;
if(day<=nextCount){ //如果小于等于下个月的之前的总天数,则跳出循环
WhichDay=day-count;
break;
}
}else{ //如果输入的天数小于第一个月则直接跳出循环
break;
}
}
/**
* 输出结果
*/
if(WhichMonth==1)
WhichDay=day; //哪天
System.out.println("你输入的"+year+"年,第"+day+"天是:"+WhichMonth+"月"+WhichDay+"日");
}
}
那年第几天是什么日期
最新推荐文章于 2021-03-14 11:42:45 发布