按照你的要求,如何得到一个月有多少天,这里并没有说是什么年份,所以默认当年(不同年份的月份天数可能不一样,例如闰年的二月)
因此问题变为
输入条件:指定某一个月
输出结果:当年这个月份的天数
思路:在Java8里新的时间API里,月份已经被抽象成了枚举Month,所以可以把输入条件定义为枚举类型的Month,然后获取当前时间X,把时间X的月份修改为输入条件的月份,此时时间X变为X1,根据本身提供的方法lengthOfMonth就可以直接得到X1所在当月的天数了
代码:(请将JDK升到8)
public static void main(String[] args) {Systemoutprintln(countDaysInMonth(MonthMAY));
}
public static int countDaysInMonth(Month month){
// 获取当前时间
LocalDate now = LocalDatenow();
Systemoutprintln(now);
// 把当前时间的月份修改为输入的月份
LocalDate thisMonthDate = nowwithMonth(monthgetValue());
Systemoutprintln(thisMonthDate);
return thisMonthDatelengthOfMonth();
}
也可以连着写,更美观点
public static int countDaysInMonth(Month month){return LocalDatenow()
withMonth(monthgetValue())
lengthOfMonth();
}
非常直观且易懂好用,在Java8里with就代表着修改意思,withMonth那就是修改月份,所以整个代码读下来就变成
获取当前时间A
修改A的月份为输入条件得到时间B
计算B所在月的天数
这个比较简单,java 中有相应的类能实现你的这个要求。具体代码请稍后。
public static void main(String[] args) {
Calendar cal=CalendargetInstance(); //调用Calendar 中的方法;
calset(CalendarDAY_OF_MONTH, 1); // 把时间调整为当月的第一天;
caladd(CalendarMONTH,1); // 月份调至下个月;
caladd(CalendarDAY_OF_MONTH, -1); // 时间减去一天(就等于上个月的最后一天)
int month=calget(CalendarMONTH)+1; //调取月份(月份在表示中会少 1,如:1月份得出数字是 0;
int days=calget(CalendarDAY_OF_MONTH);//调取当月的天数。
Systemoutprintln(month+"月份有"+days+"天");//打印最后被结果。
}
select to_char(last_day(sysdate),'dd') from dual
也可以将sysdate替换为任意时间,以计算当天所在月份天数。
甲骨文公司简介:
oracle一般指甲骨文公司
甲骨文股份有限公司(Oracle)是全球大型数据库软件公司,总部位于美国加州红木城的红木岸。在2008年,甲骨文股份有限公司是继Microsoft及IBM后,全球收入第三多的软件公司。Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统。甲骨文股份有限公司于1989年正式进入中国,在北京、上海、广州和成都均设立了分支机构。 2016年1月,甲骨文表示会收购网站数据追踪服务商AddThis。2016年2月,甲骨文收购了云计算创业公司Ravello Systems。2017年6月7日发布的2017年美国《财富》500强,甲骨文公司排名第81位。2017年6月,《2017年BrandZ最具价值全球品牌100强》公布,甲骨文公司排名第46位。
楼上正解,不过楼主问出这个问题可能也是初学者,我就提供一下用简单语法的代码吧
public static void main(String[] args) {
Scanner scan=new Scanner(Systemin);
Systemoutprintln("请输入年份");
int year= scannextInt();//得到需求年份
Systemoutprintln("请输入月份");
int month=scannextInt();//得到需求月份
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
Systemoutprintln(year+"年"+month+"月的天数为:"+31);
break;
case 4:
case 6:
case 9:
case 11:
Systemoutprintln(year+"年"+month+"月的天数为:"+30);
case 2:
if((year%400)==0 || ((year%4)==0)&&((year%100)!=0)){
Systemoutprintln(year+"年2月的天数为:"+29);
}else{
Systemoutprintln(year+"年2月的天数为:"+28);
}
}
}
可以分这样的两步来实现:
1、统计当天至月底的天数:=DATE(2021,11,30)-TODAY()+1
2、制定的假期大于当天的个数:{SUM(IF((A1:A7-C2)>0,1,0))},数组函数
3、两者之差就是当月需要工作的日期:{=DATE(2021,11,30)-TODAY()+1-SUM(IF((A1:A7-C2)>0,1,0))},这个{}需通过按ctrl+alt+回车键,来生成。
4、结果如图:
--获得当月天数
select
day(dateadd(mm,1,getdate())-day(getdate()))
as
本月天数
;
select
getdate()
as
当前日期;
select
day(getdate())
as
目前第几天;
select
getdate()-day(getdate())
as
上个月最后一天;
--
减去了当前的天数
select
dateadd(mm,1,getdate())-day(getdate())
as
加上一个月;
--
也就是这个月的最后一天
select
day(dateadd(mm,1,getdate())-day(getdate()))
as
获得当月天数;
public static int day(int month,int year){
int a=0;
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
a=31;
break;
case 4:
case 6:
case 9:
case 11:
a=30;
break;
case 2:
if((year%4==0&&year%100!=0)||year%400==0){
a=29;
}else{
a=28;
}
}
return a;
}
public static void main(String[] args){
Scanner scan=new Scanner(Systemin);
Systemoutprint("请输入年份:");
int year=scannextInt();
Systemoutprint("请输入月份:");
int a=day(month,year);
//当月天数
Systemoutprint(month+"月有"+a+"天"+"\n");
}
以上就是关于Java里,如何得到一个月有多少天全部的内容,包括:Java里,如何得到一个月有多少天、java 获取某年某月有多少天、ORACLE根据月份获取天数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)