问题是:在一个输入框中输入一个数字X,然后求X天之前的准确时间~时间的格式为:2009.03.05 14:54:26

解决方案 »

  1.   

    查出系统当前时间,在减撒,有个函数可以处理的,你找下,我忘记什么了,貌似是date
      

  2.   

    package com.webm;import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    import java.util.Scanner;public class Test { /**
     * @param args
     */
    public static void main(String[] args) {
            SimpleDateFormat sdf=new SimpleDateFormat();
            GregorianCalendar calendar=(GregorianCalendar) Calendar.getInstance();
            
      
            Scanner input=new Scanner(System.in);
            int num=input.nextInt();
            
            calendar.add(Calendar.DATE, -num);
            Date time=calendar.getTime();
            System.out.println(time.toLocaleString());
    }}将控制台输入转换成输入框就OK了!
      

  3.   


    package my.util;import java.text.SimpleDateFormat;
    import java.util.Calendar;public class Test1 {
    public static void main(String[] args) {
    Test1 t1=new Test1();
    //假设X=10,去调用方法
    int x=0;
    System.out.println(t1.getMyDate(x));
    } /*
     * 输入一个天数,得到几天前得日期
     */
    public String getMyDate(int day){
    try{
    //用SimpleDateFormat定义您需要得日期格式。
    //其中yyyy表示4位数得年份,MM表示2位数得月份,后面依次为 日、时、分、秒。
    SimpleDateFormat sm=new SimpleDateFormat("yyyy.MM.dd hh:mm:ss");

    //利用Calendar类得Set方法将天数重新设置为X天前得天数
    Calendar ca=Calendar.getInstance();
    ca.set(Calendar.DAY_OF_YEAR, ca.get(Calendar.DAY_OF_YEAR)-day);

    //最后用SimpleDateFormat实例进行格式转换,其中ca.getTime()是将calendar转换称Date类型
    return sm.format(ca.getTime());

    }catch (Exception e) {
    e.printStackTrace();
    return null;
    }
    }
    }
      

  4.   

    package my.util;import java.text.SimpleDateFormat;
    import java.util.Calendar;public class Test1 {
    public static void main(String[] args) {
    Test1 t1=new Test1();
    //假设X=10,去调用方法
    int x=0;
    System.out.println(t1.getMyDate(x));
    } /*
     * 输入一个天数,得到几天前得日期
     */
    public String getMyDate(int day){
    try{
    //用SimpleDateFormat定义您需要得日期格式。
    //其中yyyy表示4位数得年份,MM表示2位数得月份,后面依次为 日、时、分、秒。
    SimpleDateFormat sm=new SimpleDateFormat("yyyy.MM.dd hh:mm:ss");

    //利用Calendar类得Set方法将天数重新设置为X天前得天数
    Calendar ca=Calendar.getInstance();
    ca.set(Calendar.DAY_OF_YEAR, ca.get(Calendar.DAY_OF_YEAR)-day);

    //最后用SimpleDateFormat实例进行格式转换,其中ca.getTime()是将calendar转换称Date类型
    return sm.format(ca.getTime());

    }catch (Exception e) {
    e.printStackTrace();
    return null;
    }
    }
    }
      

  5.   

    出现BUG了
    怎么答复两次了?
    sorry!
      

  6.   

    int x = (获得的天数)
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");//格式化日期
    long timeMillis = System.currentTimeMillis();//获取当前毫秒数
    long earlyTime = timeMillis-x*24*60*60*1000;//计算x天前的毫秒数
    java.util.Date d = new java.util.Date(earlyTime);
    String dateStr = sdf.format(d);
      

  7.   

    Date date = new Date();
    date.setTime(date.getTime() - (1 * 24 * 60 * 60 * 1000)); Calendar time = Calendar.getInstance(); time.setTime(date); System.out.println(time.getTime().toLocaleString());
    把其中(1 * 24 * 60 * 60 * 1000)的1替换你要输入的n
      

  8.   


    import java.util.Calendar;
    import java.util.Date;
    import java.text.SimpleDateFormat;
    public class DataOperate {
    private static SimpleDateFormat format = new SimpleDateFormat(
    "yyyy.MM.dd HH:mm:ss");
    public static void main(String[] args) throws Exception{
    String dateStr="2009.03.05 14:54:26";
    Date date=format.parse(dateStr);

    int x=10;//要减的天数

    long ts=date.getTime()-x*24*60*60*1000;
    Date dueDate=new Date(ts);//这就是目标时间
    System.out.println(format.format(dueDate));//格式化打印
    }
    }
      

  9.   

    我用了两种方法 一个是Date类(里得很多方法都过期了) 一个是Calendar类(推荐).
         Date类:
    Calendar c = Calendar.getInstance();// 底层是单例写出来的 SimpleDateFormat dateFormat = new SimpleDateFormat(
    "yyyy.MM.dd HH:mm:ss");
                    int x = 1;  //几天后
      Date date = new Date();
     date.setDate(date.getDate()-x); //获取月份中的某一天 ,减去你天数,再把月份中的某一天改成X天之前的
    System.out.println(dateFormat.format(date));     Calendar类:
            Calendar c = Calendar.getInstance();
                      SimpleDateFormat dateFormat = new SimpleDateFormat(
    "yyyy.MM.dd HH:mm:ss");
    int x = 1;//几天后
    Date date = new Date();
    int y= c.get(c.DAY_OF_MONTH);//月份中的某一天
            y-=x; 
    c.set(c.DAY_OF_MONTH, y);//再把月份中的某一天改成X天之前的
    System.out.println(dateFormat.format(c.getTime())); //c.getTime()把Calendar转化成Date
      

  10.   

    这样就可以了:import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;import javax.swing.JOptionPane;public class Test { public static void main(String[] args) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
    GregorianCalendar calendar = (GregorianCalendar) Calendar.getInstance(); int x =Integer.parseInt(JOptionPane.showInputDialog(null,"请输入X的值:"));

    calendar.add(Calendar.DATE, -x);
    Date time = calendar.getTime();
    System.out.println(sdf.format(time));
    }}
      

  11.   

    用Calendar全搞定,只要查看一下Calendar的API就知道了
      

  12.   

    package test;import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;import javax.swing.JOptionPane;public class Date2StringBeforeSeveralDays {
    public String date2StringBefore(int beforeDays) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
    Calendar c = Calendar.getInstance();
    c.add(Calendar.DAY_OF_MONTH, -beforeDays);
    Date d = c.getTime();
    String s = sdf.format(d);
    return s;
    } public static void main(String[] args) {
    String inputNumString = JOptionPane.showInputDialog("plz input num");
    int inputNum = Integer.parseInt(inputNumString);
    Date2StringBeforeSeveralDays d = new Date2StringBeforeSeveralDays();
    String result = d.date2StringBefore(inputNum);
    JOptionPane.showMessageDialog(null, result);
    }
    }
      

  13.   

                  SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
    int day = 10;
    Calendar cal = Calendar.getInstance();
    int today = cal.get(Calendar.DAY_OF_MONTH);
    cal.set(Calendar.DAY_OF_MONTH, (today-day));

    String string = sdf.format(cal.getTime());10天前的当前时间