JAVA如何得到给定日期所在月份天数的集合

JAVA如何得到给定日期所在月份天数的集合,第1张

import javautilCalendar;

public class Du {

public static void main(String[] args) {

String date = "2011-01-12";

int[] daysInMonth = getMonthDays(date);

for(int value: daysInMonth){

Systemoutprint(value + " ");

}

}

private static int[] getMonthDays(String date) {

Calendar calendar = CalendargetInstance();

calendarset(CalendarYEAR, IntegerparseInt(datesubstring(0, 4)));

calendarset(CalendarMONTH, IntegerparseInt(datesubstring(5, 7)) -1);

int maxDay = calendargetActualMaximum(CalendarDAY_OF_MONTH);

int[] days = new int[maxDay];

for(int i = 1; i <= maxDay; i++){

days[i-1] = i;

}

return days;

}

}

-----------------

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

这个题目的逻辑比较简单,先用数组记录出一年12个月每个月的天数,其中2月记录为28天,在判断当年是否是闰年,如果是闰年,将2月天数记录为29天,然后输入,例如数组month,输出month[m - 1],这就是这个月的天数了。

import javautilDate;

import javautilCalendar;

import javatextSimpleDateFormat;class Demo{

//返回当前年份

int getYear(){

Date date=new Date();

String year=new SimpleDateFormat("yyyy")format(date);

return IntegerparseInt(year);

}

//返回当前月份

int getMonth(){

Date date=new Date();

String month=new SimpleDateFormat("MM")format(date);

return IntegerparseInt(month);

}

//判断闰年

boolean isLeap(int year){

if(((year%100==0)&&year%400==0)||((year%100!=0)&&year%4==0))

return true;

else

return false;

}

//返回当月天数

int getDays(int year,int month){

int days;

int FebDay=28;

if(isLeap(year))

FebDay=29;

switch(month){

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

days=31;break;

case 4:

case 6:

case 9:

case 11:

days=30;break;

case 2:

days=FebDay;break;

default:

days=0;break;

}

return days;

}

//返回当月星期天数

int getSundays(int year,int month){

int sundays=0;

SimpleDateFormat sdf=new SimpleDateFormat("EEEE");

Calendar setDate= CalendargetInstance();

//从第一天开始

int day;

for(day=1;day<=getDays(year,month);day++){

setDateset(CalendarDATE,day);

String str=sdfformat(setDategetTime());

if(strequals("星期日")){

sundays++;

}

}

return sundays;

}

public static void main(String[] args){

Demo demo=new Demo();

Systemoutprintln ("本月有"+demogetDays(demogetYear(),demogetMonth())+"天");

Systemoutprintln ("本月有"+demogetSundays(demogetYear(),demogetMonth())+"个星期天");

}

}次程序已经验证正确如果看程序的话我自认为我的代码比楼上的好,而且楼桑有用到java API已经过时的方法但是当写玩代码后去看了电脑下的时间,发现我好SB,一个月不就四个星期天或者五个星期谈吗?害我费了这么多时间,哎~~

以下是Java代码,用于计算中国时间2023年3月8日离当月月底还有多少天:

```java

import javatimeLocalDate;

import javatimeZoneId;

import javatimetemporalChronoUnit;

public class DaysToMonthEnd {

public static void main(String[] args) {

LocalDate today = LocalDatenow(ZoneIdof("Asia/Shanghai"));

LocalDate endOfMonth = todaywithDayOfMonth(todaylengthOfMonth());

long daysToMonthEnd = ChronoUnitDAYSbetween(today, endOfMonth);

Systemoutprintln("Days to Month End: " + daysToMonthEnd);

}

}

```

首先,使用 `LocalDatenow(ZoneIdof("Asia/Shanghai"))` 获取当前日期。这里以亚洲/上海时区为例。然后,使用 `withDayOfMonth` 方法获取当月的最后一天。接下来,利用 `ChronoUnitDAYSbetween` 方法计算当前时间和当月月底之间的天数差异。最后,将结果打印到控制台。

在本例中,输出结果为:23。即距离2023年3月31日(当月月底)还有23天。

以上就是关于JAVA如何得到给定日期所在月份天数的集合全部的内容,包括:JAVA如何得到给定日期所在月份天数的集合、java 计算某月有多少天、java 求出当月天数和有几个星期天等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存