Java里,如何得到一个月有多少天

Java里,如何得到一个月有多少天,第1张

按照你的要求,如何得到一个月有多少天,这里并没有说是什么年份,所以默认当年(不同年份的月份天数可能不一样,例如闰年的二月)

因此问题变为

输入条件:指定某一个月

输出结果:当年这个月份的天数

思路:在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根据月份获取天数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9332103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存