输入字符串如 2008-06 就可以得到如下效果

时间:2008-06-12 10:10:33   来源:论坛整理  作者:  编辑:chinaitzhe
输入字符串如 2008-06 就可以得到如下效果

返回
2008-05
2008-04
2008-03
2008-02
2008-01
网友回复:自己顶
网友回复:得到月份,然后用Calendar的add
然后输出!
网友回复:把字符串转换为日期取月份 for(int i=6-1;i--;i>0)
网友回复:那跨年怎么办 楼上的方法不行
网友回复:我的方法就行!
自己写写看!
先通过SimpleDateFormat转换成日期格式
然后Calendar,然后add月份-1
然后得到日期再转换成字符串
网友回复:先把字符串转化成date类型,然后就简单了
网友回复:public static void StringToDate (String date){
SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM");
try {
int month= sd.parse(date).getMonth() 1;
int year=1900 sd.parse(date).getYear();
for(int i=month-1;i>0;i--){
if(i <10){
System.out.println(year "-0" i);
}


}


} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
网友回复:
引用 7 楼 miaosong 的回复:
public static void StringToDate (String date){
SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM");
try {
int month= sd.parse(date).getMonth() 1;
int year=1900 sd.parse(date).getYear();
for(int i=month-1;i>0;i--){
if(i <10){
System.out.println(year "-0" i);
}


}


} catch (ParseException e) {
// TODO Auto-generated c…

jdk1.5 里的 getMonth() getYear(); 已经被废弃了
网友回复:有人写出代码了,我就不重复了.
只是要得到输入日的前五天日期,对吗?
网友回复:是前5个月
网友回复:追加80分 谁的程序采纳 给予追加80 加这个帖子的20
100分全部给作者
网友回复:顶一下
网友回复:算了,我帮你写个得了!

网友回复:谢谢你 写完 分都给你
网友回复:路过 关注
网友回复:
Java code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/



import java.text.SimpleDateFormat;

import java.util.Calendar;

public class Hello{

    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");



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

        String str = "2008-06";

        System.out.println(sdf.parse(str));

        for (int i = 0; i < 5; i  ) {

            Calendar cal = Calendar.getInstance();

            cal.setTime(sdf.parse(str));

            cal.add(Calendar.MONTH, -1);

            str = sdf.format(cal.getTime());

            System.out.println(sdf.format(cal.getTime()));

        }

    }



}


网友回复:
引用楼主 boy_wh520 的帖子:
输入字符串如 2008-06 就可以得到如下效果

返回
2008-05
2008-04
2008-03
2008-02
2008-01

2楼的方法是最正确的方法。
非常不建议用解析字符串,把月份弄成int加减的方法。
网友回复:
引用 16 楼 M_song 的回复:
Java codeimport java.text.SimpleDateFormat;
import java.util.Calendar;
public class Hello{
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");

public static void main(String args[]) throws Exception {
String str = "2008-06";
System.out.println(sdf.parse(str));
for (int i = 0; i < 5; i ) {
Calendar cal = Calendar.getInstan…

高手 我在开个贴子你来 把80分给你

请M_song 来接分
网友回复:
Java code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/





import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;



public class Test {

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

        String input = "2008-03";

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");

        Calendar cal = Calendar.getInstance();

        cal.setTime(sdf.parse(input));

        for(int i=0;i<6;i  ){

            cal.add(Calendar.MONTH, -1);

            System.out.println(sdf.format(cal.getTime()));

        }

    }

}




网友回复:假如说用字符串输出的话,那可以用解析字符串,把月份弄成int加减的方法。
假如说一日期的格式输出的话,2楼的做法是正确的
要看你是要怎么实现的
关键字:输入,字符串,得到,效果,

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面