一个简单问题,Java里,如何得到一个月有多少天
你说需要计算一个月有多少周,若是指,一月,二月一直到十二月每个月有多少周的话,可以用Java8的新时间API进行计算,因为里面已经封装了每个月了,但由于每一年每个月的周数可能不同,所以必须还需要一个日期,也就是年,因此得到某年某月的某个时间,就可以相应算出这个时间所在月的第一天和最后一天,然后计算这第一天和最后一天相隔多少个周
思路:
获取所有月份的枚举集合A
随意获取一个时间B
循环所有的月份A,把B的月份依次修改为A中的每个月份,得到修改后的时间集合C
循环C中的所有时间,把每个时间都算出该时间的所在月份的第一天和最后一天,并计算周数
打印周数
代码:
// 随意取一个时间,取了当前时间LocalDate localDate = LocalDate.now();System.out.println("当前时间为:" + localDate);// 根据封装好的月份获取一个一月到十二月的Month流,此时流里的对象为MonthArrays.stream(Month.values()) // 把每个month都调整到当前这个时间里,此时流的对象为LocalDate .map(month -> month.adjustInto(localDate)) // 这里方便里观察此时流的数据,把转换后的时间打印了出来 .peek(System.out::println) // 根据时间的所在月的第一天和最后一天作为间隔计算周数 .map(temporal -> ChronoUnit.WEEKS.between(temporal.with(TemporalAdjusters.firstDayOfMonth()), temporal.with(TemporalAdjusters.lastDayOfMonth()))) // 打印最后的周数 .forEach(System.out::println);
写下面代码:
int dayCount;Calendar cl=Calendar.getInstance();//实例化一个日历对象cl.set(Calendar.YEAR,2015);//年设置为2015年cl.set(Calendar.MONTH,6);//7月的id是6 dayCount=cl.getActualMaximum(Calendar.DATE);//得到一个月最大的一天就是一个月多少天
方案1:
1、最简单的,就是定义一个数组,数组中[31,28,31,30.....]
2、然后取第几个月,直接通过月份的数字减去1做为下标来取上面的数组的数据就可以
3、2月份是特殊,所以如果取到2月份,加一个闰年判断
方案2:直接给你上代码吧,通过下面两个方法,你可以取到一个月的最后一天了,再把这天的日期格式化取最后2个数字出来,就是天数了
/**
* 得到当前月的最后一天
*
* @return
*/
public static Date getLastDayOfMonth(Date date) {
Calendar c = new GregorianCalendar();
c.setTime(date);
c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
return toDate(c.getTime(),"yyyy-MM-dd");
}
/**
* add by chenxiaoping
*
* @字符串转日期
* @param strDate
* 字符串的日期
* @return Date 日期
*/
public static Date toDate(Date date, String strFormat) {
Date retDate = null;
SimpleDateFormat sdf = new SimpleDateFormat(strFormat);
try {
String str = sdf.format(date);
retDate = sdf.parse(str);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return retDate;
}
java问题
5.Java代码关于url请求,接受参数的乱码 url的编码格式,取决于上面所说的URIEncoding=”UTF-8”。 如果设定了这个编码格式,则意味着所有到url的汉字参数,都必须进行编码才可以。否则得到的汉字参数值都是乱码,例如 一个链接 Response.sendDerect(“\/a.jsp?name=张大维”);而在a.jsp里面直接使用...
学习Java经常遇到的问题有哪些?
想要掌握更多的技术知识,单靠书籍是不行的。问题四:担心找不到工作 学习Java主要是为了找一份适合自己的工作,很多人最担心的就是找工作的环节。在市场上Java工程师的需求量是非常大的,并且北大青鸟霍营计算机学院推荐学员就业,只要具备能力,获得高薪就业机会是没有任何问题的。
JAVA简单问题,高手进下帮帮忙,谢谢!
低 住 佐 佑 佒 体 占 何 佖 佗 佘 余 佚 佛 作 佝 佞 佟 你 佡 这是运行结果,解释:i是从20302开始循环,然后将其强转成char类型进行输出,由于你直接把int类型赋值给char类型,就相当于你把ASCII码直接赋值给了char类型,所以打印出来的是ASCII码所对应的汉字 ...
java里取余的问题
java中求余数用“%”,之后输出满足条件的数值,如10%5,结果就是0;public class PrimeNumber { public static void main(String[] args){ int i=2;for(i=2;i<20;i++){ if(i%5==0)System.out.print(i+"\\t"); } } 输出结果:5 10 15 。
Java面试有哪些问题?
然后就问了一个项目有关的正常问题。开始问我技术了。第一个技术就问我spring框架,然后问我spring主要注重哪些技术,我说了就依赖注入和自动化配置,然后这人问我如何学习spring,我说看了spring实战,深入理解spring架构,然后还看了源码,然后这人说你看了官方文档吗,我说看了小部分,然后他说你怎...
java实在学不明白,几个java问题请教大家
java中OutputStreamWriter和BufferedWriter问题,实在弄不明白!一夜睡不着啊! 头一次听说OutputStreamWriter还可以new,编译都通不过...你这问题我也是醉了 想不明白的问题,请教大家! 我身边就这样一个人。。开学还要去对付他类。。哎。。他们在积累他们所谓的资本。。获得了他们所谓的物质与精神。。
java几个简单问题!
一楼不懂请不要乱教人家 1.JAVA里double 的这种除法运算是有可能损失精度的。比如有时0.1可能会输出成0.09999999...解决这种问题的办法是double a = 3.1251111111;b=a\/3;这样就能相等了 2.int a=0123;JAVA里以0开头赋值的话他会当成是八进制,0x开头是16进制,所以123转换成8进制为83.3. s...
JAVA问题简单的很,菜鸟送分,在线等
一维数组的定义 type arrayName[];其中类型(type)可以为Java中任意的数据类型,包括简单类型组合类型,数组名arrayName为一个合法的标识符,[]指明该变量是一个数组类型变量。例如:int intArray[];声明了一个整型数组,数组中的每个元素为整型数据。与C、C++不同,Java在数组的定义中并不为数组元素...
如何查找java路径?
4、安装完毕后,我们就打开我的世界游戏软件,在游戏启动器界面,打开设置界面浏览。5、打开之前创建的文件,找到自己刚才安装Java时的文件夹,选择Java文件夹和jre7文件夹,并且我们可以看到里面有个javaw.exe目标,确定之后保存,整个路径保存就算解决成功,打开游戏,就能快速的进入游戏。Java是一种可以撰写...
JAVA的一个小问题
try { \/\/ 声明配置文件类 准备加载 Properties settings = new Properties();\/* jdbc驱动名称 *\/ String driverManager = "";\/* 数据库连接地址 *\/ String url = "";\/* 数据库用户名称 *\/ String username = "";\/* 登陆密码 *\/ String password = "";try { \/\/ 得到配置文件的路径 Str...