java 根据日期获取当月所有日期,和 上个月所有日期
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 根据日期获取当月所有日期,和 上个月所有日期相关的知识,希望对你有一定的参考价值。
java 语言
import java.text.SimpleDateFormat;import java.util.Calendar;
import java.util.Date;
public class Main
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
public static void main(String args[])
Date d = new Date();
// 月初
System.out.println("月初" + sdf.format(getMonthStart(d)));
// 月末
System.out.println("月末" + sdf.format(getMonthEnd(d)));
Date date = getMonthStart(d);
Date monthEnd = getMonthEnd(d);
while (!date.after(monthEnd))
System.out.println(sdf.format(date));
date = getNext(date);
private static Date getMonthStart(Date date)
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int index = calendar.get(Calendar.DAY_OF_MONTH);
calendar.add(Calendar.DATE, (1 - index));
return calendar.getTime();
private static Date getMonthEnd(Date date)
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, 1);
int index = calendar.get(Calendar.DAY_OF_MONTH);
calendar.add(Calendar.DATE, (-index));
return calendar.getTime();
private static Date getNext(Date date)
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE, 1);
return calendar.getTime();
这是一个月的 你改改就能写出上个月的了吧
追问这个只是获取当月的日期 ,我要的是 根据日期获取上月、和本月的所有日期
追答把getMonthStart 修改为
private static Date getMonthStart(Date date)Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, -1);
int index = calendar.get(Calendar.DAY_OF_MONTH);
calendar.add(Calendar.DATE, (1 - index));
return calendar.getTime();
追问
加q可以么 121686578
参考技术A 看了他们的回答答案应该已经有了。我想问你, 给你一个日期。你能获得该月的最后一天吗?追问
可以的 。
参考技术B 是不是要获取类似于日历中的那种所有日期集合 参考技术C 不明白你的意思按我理解的 知道月份 不就知道上个月和下个月是几天了追问
比如(2014-04-15)这个日期获取 3 月份 和 4 月份 所有日期。
追答你是要简单的方法 还是??
追问只要能获取出来就行。
追答看楼下的吧啊 我的想法是 用字符串 截
JAVA中怎么实现,根据用户输入的年份和月份得到当月第1天(该月1号)
请高人指教,最好是把代码一起发出来,谢谢了。。。跪求,急!!
参考技术A 抽了点时间写了些代码:给你看看是不是你想要的,你是初学者把,俺给你加些注释 package yjh.action; import java.text.SimpleDateFormat; //定制日期格式的类 import java.util.Calendar; //日历类 import java.util.Date; //当前日期和时间的Data类 import java.util.Scanner;//读取用户输入的类 public class DataCounter public int getDay(String strDate) throws Exception int day = 0; //设定一个特定的日期格式,例如2009-01-03 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); //把用户输入的字符串转化为日期和时间的格式 Date date = format.parse(strDate); //返回系统的当前状态时间 Calendar cal = Calendar.getInstance(); //用给定的 date 设置此 cal cal.setTime(date); //返回年月日中的天数 day = cal.get(cal.DAY_OF_YEAR); return day; public static void main(String args[]) try System.out.println("请输入日期,格式如:2009-03-25:"); //读取用户的输入 Scanner scan = new Scanner(System.in); String str = scan.next(); int day; day = new DataCounter().getDay(str); System.out.println(str + "是" + str.subSequence(0, 4) + "年的第" + day + "天"); catch (Exception e) // TODO 自动生成 catch 块 e.printStackTrace(); 本回答被提问者采纳以上是关于java 根据日期获取当月所有日期,和 上个月所有日期的主要内容,如果未能解决你的问题,请参考以下文章
JAVA中怎么实现,根据用户输入的年份和月份得到当月第1天(该月1号)