问题描述
java中如何表示上个月倒数第2天(date1)和本月倒数第2天(date2)?date1和date2表示成yyyymmdd格式的.给具体讲解下啊,本人是新手,研究了半天api,还是没有弄懂。现在又急着用。拜谢了先。
解决方案
解决方案二:
去看下Calander类的用法
解决方案三:
....看过了,还是不知道怎么弄啊。
解决方案四:
哎
解决方案五:
接分
解决方案六:
publicstaticvoidmain(String[]args){Calendarca=Calendar.getInstance();System.out.println(ca.getTime());//今天ca.set(ca.get(Calendar.YEAR),ca.get(Calendar.MONTH),ca.getActualMaximum(Calendar.DAY_OF_MONTH)-1);System.out.println(ca.getTime());//本月倒数第2天}
上个月的自己试试吧
解决方案七:
DateFormatdf=newSimpleDateFormat("yyyyMMdd");StringdateStr=df.format(ca.getTime());System.out.println(dateStr)
格式转换
解决方案八:
importjava.text.SimpleDateFormat;importjava.util.Calendar;publicclassTT{publicstaticvoidmain(String[]args){getDay(2009,1);}privatestaticvoidgetDay(intyear,intmonth){SimpleDateFormatdf=newSimpleDateFormat("yyyyMMdd");Calendarc=Calendar.getInstance();c.set(Calendar.YEAR,year);c.set(Calendar.MONTH,month-1);c.set(Calendar.DAY_OF_MONTH,1);c.add(Calendar.DAY_OF_MONTH,-2);System.out.println("上月倒数第二天为:"+df.format(c.getTime()));c.set(Calendar.YEAR,year);c.set(Calendar.MONTH,month);c.set(Calendar.DAY_OF_MONTH,1);c.add(Calendar.DAY_OF_MONTH,-2);System.out.println("本月倒数第二天为:"+df.format(c.getTime()));//测试结果为//上月倒数第二天为:20081230//本月倒数第二天为:20090130}}
解决方案九:
思路就应该是这样的用这个月的一月一号所对应的那个长整形数减去2*24*60*60*1000得到一个数,然后再把这个数转成Calendar或Date.
解决方案十:
mark
解决方案十一:
dd
解决方案十二:
importjava.text.SimpleDateFormat;importjava.util.Calendar;publicclassTT{publicstaticvoidmain(String[]args){getDay(2008,12);}privatestaticvoidgetDay(intyear,intmonth){SimpleDateFormatdf=newSimpleDateFormat("yyyyMMdd");Calendarc=Calendar.getInstance();c.set(Calendar.YEAR,year);c.set(Calendar.MONTH,month-1);c.set(Calendar.DAY_OF_MONTH,1);c.add(Calendar.DAY_OF_MONTH,-2);System.out.println("上月倒数第二天为:"+df.format(c.getTime()));c.set(Calendar.YEAR,year);c.set(Calendar.MONTH,month);if(month==12){//修改了一下,就是如果是12月的倒数第二天的时候,要把年和月分别设新值。c.set(Calendar.YEAR,year+1);//年份+1c.set(Calendar.MONTH,0);//1月}c.set(Calendar.DAY_OF_MONTH,1);c.add(Calendar.DAY_OF_MONTH,-2);System.out.println("本月倒数第二天为:"+df.format(c.getTime()));}}
解决方案十三:
引用楼主convei103的帖子:
java中如何表示上个月倒数第2天(date1)和本月倒数第2天(date2)?date1和date2表示成yyyymmdd格式的.给具体讲解下啊,本人是新手,研究了半天api,还是没有弄懂。现在又急着用。拜谢了先。
答:GregorianCalendarc=newGregorianCalendar();System.out.println("年:"+c.get(Calendar.YEAR)+"月:"+(c.get(Calendar.MONTH)+1)+"日:"+c.get(Calendar.DAY_OF_MONTH));//本月倒数第二天:GregorianCalendarc1=newGregorianCalendar(c.get(Calendar.YEAR),c.get(Calendar.MONTH)+1,1);c1.add(Calendar.DAY_OF_MONTH,-2);//此时:c1是本月倒数第二天System.out.println("本月倒数第二天:"+"[年:"+c1.get(Calendar.YEAR)+"月:"+(c1.get(Calendar.MONTH)+1)+"日:"+c1.get(Calendar.DAY_OF_MONTH)+"]");//上月倒数第二天:GregorianCalendarc2=newGregorianCalendar(c.get(Calendar.YEAR),c.get(Calendar.MONTH),1);c2.add(Calendar.DAY_OF_MONTH,-2);//此时:c2是上月倒数第二天System.out.println("上月倒数第二天:"+"[年:"+c2.get(Calendar.YEAR)+"月:"+(c2.get(Calendar.MONTH)+1)+"日:"+c2.get(Calendar.DAY_OF_MONTH)+"]");
运行结果:年:2009月:4日:13本月倒数第二天:[年:2009月:4日:29]上月倒数第二天:[年:2009月:3日:30]
解决方案十四:
学习了
解决方案十五:
Calander用法~!
解决方案:
mark
解决方案:
思路:首先获取当前时间,然后获取当前月份,加1后,并设置天数位1,这样就表示下个月第一天,再调用相应的方法减一天,减两天,典型Calander类用法
解决方案:
MARK一下
解决方案:
这么多人写了,随手写一个吧日期转化可以用String.format,或System.out.printfpublicstaticvoidmain(String[]args){Calendarca=Calendar.getInstance();intdays=ca.getActualMaximum(Calendar.DAY_OF_MONTH);//获得本月最大天数inttoday=ca.get(Calendar.DAY_OF_MONTH);Calendarcc=Calendar.getInstance();System.out.printf("%1$tY%1$tm%1$td",cc.add(Calendar.DAY_OF_MONTH,0-today-2).getTime());//上月倒数第二天//cc.setTime(ca.getTime());//System.out.printf("%1$tY%1$tm%1$td",cc.add(Calendar.DAY_OF_MONTH,days-today-2).getTime());//本月倒数第二天//或者System.out.printf("%1$tY%1$tm%1$td",cc.add(Calendar.DAY_OF_MONTH,days).getTime());//本月倒数第二天}
解决方案:
mark一下下
解决方案:
publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub//获取当前时间Calendarc1=Calendar.getInstance();//设置c1的天为最大天数-1;c1.set(c1.get(Calendar.YEAR),c1.get(Calendar.MONTH),c1.getActualMaximum(Calendar.DAY_OF_MONTH)-1);Calendarc2=Calendar.getInstance();//设置c2的月为当月-1c2.set(Calendar.MONTH,c1.get(Calendar.MONTH)-1);//设置c2的天为最大天数-1c2.set(Calendar.DAY_OF_MONTH,c2.getActualMaximum(c2.DAY_OF_MONTH)-1);SimpleDateFormatsdf=newSimpleDateFormat("yyyy年MM月dd日");//格式化并输出System.out.println(sdf.format(c1.getTime()));System.out.println(sdf.format(c2.getTime()));}
解决方案:
学习了,顺便顶下楼主
解决方案:
思路就是:每个月的第一天都是1号求上个月的倒数第二天,你就先把日期设置到本月第一天,然后date减2即可求本月的倒数第二天,同理,先把日期设置到下月第一天,然后date减2即可
解决方案:
懂了彻底的懂了!
解决方案:
引用22楼cntmi的回复:
求上个月的倒数第二天,你就先把日期设置到本月第一天,然后date减2即可求本月的倒数第二天,同理,先把日期设置到下月第一天,然后date减2即可
顶一下!!!确实是这样的.!!代码就不给你了.自己写下..用Calendar很简单的.!
解决方案:
有兴趣可以去看看,那里有很接近的答案。
解决方案:
不是很难,多写写就会了
解决方案:
importjava.text.SimpleDateFormat;importjava.util.Calendar;publicclassTT{publicstaticvoidmain(String[]args){getDay(2009,3);}privatestaticvoidgetDay(intyear,intmonth){SimpleDateFormatdf=newSimpleDateFormat("yyyy-MM-dd");Calendarc=Calendar.getInstance();c.set(Calendar.YEAR,year);c.set(Calendar.MONTH,month-1);c.set(Calendar.DAY_OF_MONTH,1);c.add(Calendar.DAY_OF_MONTH,-2);System.out.println("上月倒数第二天为:"+df.format(c.getTime()));c.set(Calendar.YEAR,year);c.set(Calendar.MONTH,month);c.set(Calendar.DAY_OF_MONTH,1);c.add(Calendar.DAY_OF_MONTH,-2);System.out.println("本月倒数第二天为:"+df.format(c.getTime()));//测试结果为//上月倒数第二天为:20081230//本月倒数第二天为:20090130}}试了一下,这个可用。学习
解决方案:
引用12楼jiangnaisong的回复:
引用楼主convei103的帖子:java中如何表示上个月倒数第2天(date1)和本月倒数第2天(date2)?date1和date2表示成yyyymmdd格式的.给具体讲解下啊,本人是新手,研究了半天api,还是没有弄懂。现在又急着用。拜谢了先。答:JavacodeGregorianCalendarc=newGregorianCalendar();System.out.println("年:"+c.get(Calendar.YEAR)+"月:"+(c.get(Calendar.MONTH)+1)+"日:"+c.get(Calendar.DAY_OF_MONTH));//本月倒数…
正解
解决方案:
学习了!!!!!!!
解决方案:
呵呵,会的人很多,没必要再写了。结了吧!!
解决方案:
学习了牛人还是很多的
解决方案:
importjava.text.SimpleDateFormat;importjava.util.Calendar;publicclassClanderTest{privatestaticStringformat="yyyMMdd";publicstaticvoidmain(String[]args){showdays(2009,4);}privatestaticvoidshowdays(intyear,intmonth){SimpleDateFormatdf=newSimpleDateFormat(format);Calendarc=Calendar.getInstance();c.set(Calendar.YEAR,year);c.set(Calendar.MONTH,month-1);c.set(Calendar.DAY_OF_MONTH,1);c.add(Calendar.DAY_OF_MONTH,-2);System.out.println("Thelastseconddayoflastmonth:"+df.format(c.getTime()));c.set(Calendar.YEAR,year);c.set(Calendar.MONTH,month);c.set(Calendar.DAY_OF_MONTH,1);c.add(Calendar.DAY_OF_MONTH,-2);System.out.println("Thelastseconddayofcurrentmonth:"+df.format(c.getTime()));}}
解决方案:
从本月1号往前减2天,就是上个月的倒数第二天从下月1号往前减2天,就是本月的倒数第二天写代码的话一般都是这样写的
解决方案:
又学了东西,谢谢各位了。
解决方案:
学习了
解决方案:
貌似你们都没有考虑一月的情况啊,我是做测试的!packagecom.fafeiboy.test;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.GregorianCalendar;publicclassTestDate{publicstaticvoidmain(String[]args){GregorianCalendarcalendar=newGregorianCalendar();GregorianCalendarcalendarTemp1=newGregorianCalendar();GregorianCalendarcalendarTemp2=newGregorianCalendar();intyear=calendar.get(Calendar.YEAR);intmonth=calendar.get(Calendar.MONTH);if(month==0){month=11;year--;}calendarTemp1.set(year,month-1,1);calendarTemp2.set(year,month,1);intdate1=calendarTemp1.getActualMaximum(GregorianCalendar.DAY_OF_MONTH);intdate2=calendarTemp2.getActualMaximum(GregorianCalendar.DAY_OF_MONTH);calendarTemp1.set(year,month-1,date1-1);calendarTemp2.set(year,month,date2-1);SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");Strings1=sdf.format(calendarTemp1.getTime());Strings2=sdf.format(calendarTemp2.getTime());System.out.println(s1);System.out.println(s2);}}
解决方案:
引用36楼fafeiboy的回复:
貌似你们都没有考虑一月的情况啊,我是做测试的!Javacodepackagecom.fafeiboy.test;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.GregorianCalendar;publicclassTestDate{publicstaticvoidmain(String[]args){GregorianCalendarcalendar=newGregorianCalendar();GregorianCalendarcalendarTemp1=newGregorianCalendar();…
可以
解决方案:
mark