java 如何获取 一个月 有多少周

java 如何获取 一个月 有多少周,第1张

你说需要计算一个月有多少周,若是指,一月,二月一直到十二月每个月有多少周的话,可以用Java8的新时间API进行计算,因为里面已经封装了每个月了,但由于每一年每个月的周数可能不同,所以必须还需要一个日期,也就是年,因此得到某年某月的某个时间,就可以相应算出这个时间所在月的第一天和最后一天,然后计算这第一天和最后一天相隔多少个周

思路:

获取所有月份的枚举集合A

随意获取一个时间B

循环所有的月份A,把B的月份依次修改为A中的每个月份,得到修改后的时间集合C

循环C中的所有时间,把每个时间都算出该时间的所在月份的第一天和最后一天,并计算周数

打印周数

代码:

// 随意取一个时间,取了当前时间

LocalDate localDate = LocalDatenow();

Systemoutprintln("当前时间为:" + localDate);

// 根据封装好的月份获取一个一月到十二月的Month流,此时流里的对象为Month

Arraysstream(Monthvalues())

      // 把每个month都调整到当前这个时间里,此时流的对象为LocalDate

      map(month -> monthadjustInto(localDate))

      // 这里方便里观察此时流的数据,把转换后的时间打印了出来

      peek(Systemout::println)

      // 根据时间的所在月的第一天和最后一天作为间隔计算周数

      map(temporal -> ChronoUnitWEEKSbetween(temporalwith(TemporalAdjustersfirstDayOfMonth()), temporalwith(TemporalAdjusterslastDayOfMonth())))

      // 打印最后的周数

      forEach(Systemout::println);

//得到long类型当前时间

long l = SystemcurrentTimeMillis();

//new日期对

Date date = new Date(l);

//转换提日期输出格式

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-

dd HH:mm:ss");Systemoutprintln(dateFormatformat(date));

扩展资料

package comob;

import javatextParseException;

import javatextSimpleDateFormat;

import javautilCalendar;

import javautilDate;

public class DateTest {

public static void main(String[] args) throws ParseException {

Calendar now = CalendargetInstance();

Systemoutprintln("年: " + nowget(CalendarYEAR));

Systemoutprintln("月: " + (nowget(CalendarMONTH) + 1) + "");

Systemoutprintln("日: " + nowget(CalendarDAY_OF_MONTH));

Systemoutprintln("时: " + nowget(CalendarHOUR_OF_DAY));

Systemoutprintln("分: " + nowget(CalendarMINUTE));

Systemoutprintln("秒: " + nowget(CalendarSECOND));

Systemoutprintln("当前时间毫秒数:" + nowgetTimeInMillis());

Systemoutprintln(nowgetTime());

\t\tDate d = new Date();

Systemoutprintln(d);

\t\tSimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

\t\tString dateNowStr = sdfformat(d);

Systemoutprintln("格式化后的日期:" + dateNowStr);

\t\t

\t\tString str = "2012-1-13 17:26:33";

//要跟上面sdf定义的格式一样

\t\tDate today = sdfparse(str);

Systemoutprintln("字符串转成日期:" + today);

\t}

}

参考资料:

Java - 百度百科

Map<LocalDate, Double> data=new HashMap<>();

dataput (LocalDateparse ("2017-01-01"),02);

dataput (LocalDateparse ("2017-01-02"),05);

dataput (LocalDateparse ("2016-01-02"),05);

dataput (LocalDateparse ("2019-07-04"),02);

dataput (LocalDateparse ("2019-07-05"),02);

dataput (LocalDateparse ("2019-10-08"),02);

dataput (LocalDateparse ("2018-07-04"),03);

//预期结果

Map<String, List<Double>> results=new HashMap<>();

//类似这样// [{"2017年第一季度",[02,05]}, ["2019年第三季度",[02,03]}]

String[] num = {"一", "二", "三", "四"};

for (MapEntry<LocalDate, Double> localDateDoubleEntry : dataentrySet()) {

int y = localDateDoubleEntrygetKey()getYear();

int m = localDateDoubleEntrygetKey()getMonthValue();

String t = y + "年第" + num[(m - 1) / 3] + "季度";

if(!resultscontainsKey(t)) {

resultsput(t, new ArrayList<>());

}

resultsget(t)add(localDateDoubleEntrygetValue());

}

Systemoutprintln(results);

以上就是关于java 如何获取 一个月 有多少周全部的内容,包括:java 如何获取 一个月 有多少周、java如何获取当前时间 年月日 时分秒、Java问题,求大神解答等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9409241.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存