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 根据日期获取当月所有日期,和 上个月所有日期的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句 如何取得指定月份的最后一天的日期

java如何获取当天的上一个月

Java中获取去年最后一天的日期

JAVA中怎么实现,根据用户输入的年份和月份得到当月第1天(该月1号)

java获取本月开始时间和结束时间上个月第一天和最后一天的时间以及当前日期往前推一周一个月

求java代码获取上个月最后一天最后一秒的时间