这个比较简单,java 中有相应的类能实现你的这个要求。具体代码请稍后。
创新互联公司主营黔西网站建设的网络公司,主营网站建设方案,app软件开发,黔西h5成都微信小程序搭建,黔西网站营销推广欢迎黔西等地区企业咨询
public static void main(String[] args) {
Calendar cal=Calendar.getInstance(); //调用Calendar 中的方法;
cal.set(Calendar.DAY_OF_MONTH, 1); // 把时间调整为当月的第一天;
cal.add(Calendar.MONTH,1); // 月份调至下个月;
cal.add(Calendar.DAY_OF_MONTH, -1); // 时间减去一天(就等于上个月的最后一天)
int month=cal.get(Calendar.MONTH)+1; //调取月份(月份在表示中会少 1,如:1月份得出数字是 0;
int days=cal.get(Calendar.DAY_OF_MONTH);//调取当月的天数。
System.out.println(month+"月份有"+days+"天");//打印最后被结果。
}
看代码:
import java.util.Scanner;
public class Demo {
public static void main(String[] args) throws Exception {
try (Scanner in = new Scanner(System.in)) {
System.out.println("输入年份和月份:");
int year = in.nextInt();
int month = in.nextInt();
int day = 0;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
if (year % 4 == 0 year % 100 != 0 || year % 400 == 0) {
day = 29;
} else {
day = 28;
}
break;
default:
System.err.println("输入月份有误");
break;
}
System.out.printf("%d 年 %d 月有 %d 天\n", year, month, day);
}
}
}
运行:
题目6: 2008年2月有多少天?那年有多少天?
import java.util.*;
public class Test {
public static void main(String[] args) {
Date date;
Calendar time=Calendar.getInstance();
// time.clear();
/*先把时间定位在2008年2月*/
time.set(Calendar.YEAR,2008);
time.set(Calendar.MONTH,1);//2月对应数字1,
/* int getActualMaximum(int field) Return the maximum value that this field could have, given the
current date. 下句话是按月来讲的最大天数而不是按年来讲的最大天数,那不是29吗? */
。。。。。。。。。。。详情网上找“马克-to-win”,参考他的网站或他的百度空间:java第2章的内容
年闰年和非闰年,闰年366天,非闰年365天。所以判断某年多少天也就是判断是否是闰年。
闰年的判断依据
①、普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1900年不是闰年)
②、世纪年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
代码:
int year;//要判断的年份,比如2008
int days;//某年(year)的天数
if(year % 4 == 0 year % 100 != 0 || year % 400 == 0){//闰年的判断规则
days=366;
}else{
days=365;
}
/**
* 在一个时间段计算出多少天
* @param beginDate 开始时间
* @param endDate 结束时间
* @param format 格式 如果 yyyy-MM-dd;yyyy
* @return 天数
*/
public static int getDay(String beginDate, String endDate, String format) {
try {
// 日期操作类,设置制定的格式
SimpleDateFormat sim = new SimpleDateFormat(format);
Date d1 = sim.parse(beginDate); // 传入开始时间
Date d2 = sim.parse(endDate); // 传入结束时间
//计算开始时间和结束时间的时间差
int num = (int) ((d2.getTime() - d1.getTime()) / (3600L * 1000 * 24));
if(!format.equals("yyyy")) {
num = num + 1;
}
return num;
} catch (Exception e) {
e.printStackTrace();
return 0;
}
}
public static void main(String[] args) {
System.out.println(getDay("2018", "2020", "yyyy"));
System.out.println(getDay("2018-01-01", "2018-12-31", "yyyy-MM-dd"));
System.out.println(getDay("2019-02-07", "2019-02-11", "yyyy-MM-dd"));
}
年的月的都有,有什么疑问可以问我。