我想问下如果求前几天的日期? 如果今天是 2006.02.15我要求昨天,或者前三天是什么日期可以放出源码吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 GregorianCalendar gcal = (GregorianCalendar) GregorianCalendar.getInstance(TimeZone.getTimeZone("GMT+08:00")); if(flage == 1) gcal.set(GregorianCalendar.DAY_OF_MONTH, (gcal.get(GregorianCalendar.DAY_OF_MONTH) - 1)); String year = String.valueOf(gcal.get(GregorianCalendar.YEAR)); String month = String.valueOf(gcal.get(GregorianCalendar.MONTH) + 1); String day = String.valueOf(gcal.get(GregorianCalendar.DAY_OF_MONTH)); if(month.length() == 1) month = "0" + month; if(day.length() == 1) day = "0" + day; System.out.println("month = " + month); System.out.println("day = " + day);上面是我的一个程序里的一段代码,你自己参考一下。 只需要用Calendar.add()即可。import java.util.Calendar;import java.util.GregorianCalendar;public class TestCalendar { /** * @param args */ public static void main(String[] args) { Calendar cal = GregorianCalendar.getInstance(); System.out.println("month:" + cal.get(Calendar.MONTH) + "date:" + cal.get(Calendar.DATE)); cal.add(Calendar.DATE, 22); System.out.println("month:" + cal.get(Calendar.MONTH) + "date:" + cal.get(Calendar.DATE)); }} 往前算的话,add的第二个参数为负数。 我怎样把我的日期 "2006.02.15" 这个 String 代入你的CALENDAR呢 还有,我用了你的代码,哪个cal.get(Calendar.MONTH),出来的结果,比实际少了1,就是说,现在是2月,他输出是1,10月,就输出9,这样正常吗? public GregorianCalendar(int year , int month , int dayOfMonth)Calendar today = new GregorianCalendar(2006,2,15);用这个构造函数可以解决!你自己详细看看帮助文档可能我写的有问题! DateFormat f = new SimpleDateFormat("yyyy.MM.dd");Date d=f.parse("2006.02.15");Calendar cal=new Calendar();cal.set(d);cal.add(Calendar.DATE, -3); 回复 丁丁 Calendar cal=new Calendar();这句好象行不了 还有最后能不能也用回yyyy.MM.dd 固定格式输出? /** * 日期加减 * * @param format y:年运算 m:月运算 d:日运算 * @param number 加减天数 * @param strYYYYMMDD 被运算日期 * @return 运算后结果日期 */ public static String addDate (String format, int number, String strYYYYMMDD) { Calendar cal = null; String strDate = ""; Date date = null; SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd"); sdf.setLenient(false); try { cal = Calendar.getInstance(); cal.clear(); date = sdf.parse(strYYYYMMDD); cal.setTime(date); if (format.toLowerCase().equals("y") == true) { cal.add(Calendar.YEAR, number); } else { if (format.toLowerCase().equals("m") == true) { cal.add(Calendar.MONTH, number); } else { cal.add(Calendar.DATE, number); } } date = cal.getTime(); strDate = sdf.format(date); } catch (Exception e) { strDate = ""; } return strDate; }没调试,自己试试看。刚好有这么一个。 关于字符串的问题 觉得没什么错呀,可是提交了总是提示Runtimeerror EditPLus 快捷键设置 无法打开网页APPLET [求助]学习过程中的新问题!! 为什么setToolTip方法不显现效果 关于java读写文件的效率问题? 关于applet 的问题 执行java应用程序,抛出noclassderfounderror的错误 JAVA高手帮帮我阿,网页上数据库连接无法显示数据 初学java,问两个问题,急。。。。。(散分100) About JTable
if(flage == 1)
gcal.set(GregorianCalendar.DAY_OF_MONTH, (gcal.get(GregorianCalendar.DAY_OF_MONTH) - 1));
String year = String.valueOf(gcal.get(GregorianCalendar.YEAR));
String month = String.valueOf(gcal.get(GregorianCalendar.MONTH) + 1);
String day = String.valueOf(gcal.get(GregorianCalendar.DAY_OF_MONTH));
if(month.length() == 1)
month = "0" + month;
if(day.length() == 1)
day = "0" + day;
System.out.println("month = " + month);
System.out.println("day = " + day);
上面是我的一个程序里的一段代码,你自己参考一下。
import java.util.Calendar;
import java.util.GregorianCalendar;public class TestCalendar { /**
* @param args
*/
public static void main(String[] args) {
Calendar cal = GregorianCalendar.getInstance();
System.out.println("month:" + cal.get(Calendar.MONTH) + "date:" + cal.get(Calendar.DATE));
cal.add(Calendar.DATE, 22);
System.out.println("month:" + cal.get(Calendar.MONTH) + "date:" + cal.get(Calendar.DATE));
}}
你自己详细看看帮助文档
可能我写的有问题!
Date d=f.parse("2006.02.15");
Calendar cal=new Calendar();
cal.set(d);
cal.add(Calendar.DATE, -3);
Calendar cal=new Calendar();这句好象行不了
* 日期加减
*
* @param format y:年运算 m:月运算 d:日运算
* @param number 加减天数
* @param strYYYYMMDD 被运算日期
* @return 运算后结果日期
*/
public static String addDate (String format, int number, String strYYYYMMDD) {
Calendar cal = null;
String strDate = "";
Date date = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
sdf.setLenient(false);
try {
cal = Calendar.getInstance();
cal.clear();
date = sdf.parse(strYYYYMMDD);
cal.setTime(date); if (format.toLowerCase().equals("y") == true) {
cal.add(Calendar.YEAR, number);
} else {
if (format.toLowerCase().equals("m") == true) {
cal.add(Calendar.MONTH, number);
} else {
cal.add(Calendar.DATE, number);
}
}
date = cal.getTime();
strDate = sdf.format(date);
}
catch (Exception e) {
strDate = "";
}
return strDate;
}没调试,自己试试看。刚好有这么一个。