输入年份,和天数,判断是这年的第几个月,这个月的第几天?求大神解答,在线等哦!
package c; import java.util.Scanner; import io.netty.handler.codec.spdy.SpdyStreamFrame; public class Day { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in =new Scanner(System.in); int months[]={31,28,31,30,31,30,31,31,30,31,30,31}; while(in.hasNext()) { int year=in.nextInt(); int days=in.nextInt(); if(isR(year)) { months[1]=29; } else { months[1]=28; } int sum=0; int m=0; for(int i=0;i<12;i++) { sum+=months[i]; if(sum>=days) { m=i+1; break; } } System.out.println(m+"月"+(days-(sum-months[m-1]))+"日"); } } public static boolean isR(int year) { if((year%4==0 && year%100!=0) || year%400==0) { return true; } return false; } }
运行结果如下:
谢谢大神!
@wpw: 能注释一下吗 嘻嘻
@wpw: 注释?注释啥
@鸿燕藏锋: 不用了,谢谢大神哟
@wpw: 可以加我QQ。以后交流技术。2768705266
@鸿燕藏锋: 好荣幸!
dayofyear...这个代码发过好多篇.就是定一个月份天数数组1-12每个月的天数,然后输入天数循环减去.直到不能减.就是月份了.
输入年份是为了判断处理闰年逻辑.
能给出具体的代码?谢谢呦!爱你
在Java中,你可以使用java.time.LocalDate
类来处理日期相关的操作。首先,你需要将年份和天数作为输入,并使用ofYearDay()
方法创建一个LocalDate
对象。然后,你可以使用getMonthValue()
方法获取月份,使用getDayOfMonth()
方法获取天数。
以下是一个示例代码:
import java.time.LocalDate;
public class MonthDayOfYear {
public static void main(String[] args) {
int year = 2022; // 设置年份
int dayOfYear = 100; // 设置天数
LocalDate date = LocalDate.ofYearDay(year, dayOfYear); // 创建日期对象
int month = date.getMonthValue(); // 获取月份
int dayOfMonth = date.getDayOfMonth(); // 获取天数
System.out.println("这是 " + month + " 月的第 " + dayOfMonth + " 天");
}
}
在上面的示例中,我们假设输入的年份为2022,天数为100。程序将输出这是 4 月的第 10 天
,表示该日期为2022年4月10日。
请注意,此示例仅包含了基本的日期处理,你可以根据需要进行修改和扩展。