| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2624 人关注过本帖
标题:[求助]计算若干天数后的日期值(已解决)
只看楼主 加入收藏
扯の天堂
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-1-30
收藏
得分:0 
SimpleDateFormat fm = new SimpleDateFormat("yyyy-MM-dd-a");
java.util.Date da = new java.util.Date();
System.out.println(fm.format(da.getTime()));


我只知道这样格式现在的日期,但是不知道怎么格式输入的日期。。

2007-02-28 21:18
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
应该可以反过来
比如输入"2007-01-20"可以得到一个07年1月20日的Date对象

有了它以后,就可以做你想做的事情了

可惜不是你,陪我到最后
2007-02-28 21:19
扯の天堂
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-1-30
收藏
得分:0 
是啊。。
问题是怎么得到啊??

2007-02-28 21:29
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
String input=JOptionPane.showInputDialog(null,"请输入日期:(格式:yyyy-MM-dd)");
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

Date now=sdf.parse(input);
然后会了吧
然后再得到用户输入的天数,然后调用Calendar的方法求之


可惜不是你,陪我到最后
2007-02-28 21:34
扯の天堂
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-1-30
收藏
得分:0 
谢谢谢谢!!

我。。真的是脑子转不过来弯!!

2007-02-28 21:38
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
呵呵,好好努力吧

可惜不是你,陪我到最后
2007-02-28 21:40
扯の天堂
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-1-30
收藏
得分:0 
Date now=sdf.parse(input);

这句话要报错的嘛。。

2007-02-28 22:03
扯の天堂
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-1-30
收藏
得分:0 

import javax.swing.*;
import java.util.*;
import java.text.*;

public class HW2
{
public static void main(String[] args)
{
GregorianCalendar gc = new GregorianCalendar();
String input=JOptionPane.showInputDialog(null,"请输入日期:(格式:yyyy-MM-dd)");
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
java.util.Date da = new java.util.Date();
Date now=sdf.parse(input);
int count = JOptionPane.showInternalConfirmDialog(null,"请输入您想计算的天数");
}
}


就是那句话要报错

[此贴子已经被作者于2007-2-28 22:11:36编辑过]


2007-02-28 22:05
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 
对这二方法有点疑问

add(int field, int amount)
根据日历的规则,为给定的日历字段添加或减去指定的时间量。
set(int field, int value)
将给定的日历字段设置为给定值。

是不是set方法不能改变原时间的值呀?set不是设置吗?

还有就是无论add或set好像都不会自动判断闰年...
如2000年2月28日 add(Calendar.DATE,1);
结果会输出2000年2月29

是我用错了还是add和set方法确实不会判断闰年?
有没有好的解决这个问题的方法?

[此贴子已经被作者于2007-2-28 23:39:18编辑过]


我在说's blog   http://www..cn
2007-02-28 23:26
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
收藏
得分:0 

下面代码体现了我上面提出的二个问题..

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import java.text.DateFormat;


public class DateTest extends JFrame
{
DateTest(String title)
{
super(title);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setContentPane(new MyPanel());
}
public static void main(String[] args)
{
DateTest dt = new DateTest("HelloWorld");
dt.setSize(new Dimension(300,300));
dt.setVisible(true);
}
}

class MyPanel extends JPanel
{
JButton btnInit = new JButton("设定初始日期");
JButton btnVeiw = new JButton("预看N天后日期");
JButton btnSet = new JButton("设为N天后日期");
String date="";

Calendar c = new GregorianCalendar(); //对同一个时间对象操作

DateFormat df = DateFormat.getDateInstance();
Date d = null;

MyPanel()
{

this.setLayout(new BorderLayout());
this.add(btnInit,BorderLayout.NORTH);
this.add(btnVeiw,BorderLayout.CENTER);
this.add(btnSet,BorderLayout.SOUTH);


//设定初始日期
btnInit.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
date = JOptionPane.showInputDialog("请输入一个日期:(YYYY-MM-DD)");
try {
d = df.parse(date);
c.setTime(d);
} catch (ParseException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}

}
});

//预看N天后日期
btnVeiw.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
int addDate = Integer.parseInt(JOptionPane.showInputDialog("请输入希望得到几天后的日期:"));

c.add(Calendar.DAY_OF_MONTH,addDate);

DateFormat dff = DateFormat.getDateInstance(DateFormat.FULL);
JOptionPane.showMessageDialog(null, "日期是:" + dff.format(c.getTime()));

}

});


btnSet.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
int addDate = Integer.parseInt(JOptionPane.showInputDialog("请输入希望得到几天后的日期:"));

c.set(Calendar.DATE,addDate);

DateFormat dff = DateFormat.getDateInstance(DateFormat.FULL);
JOptionPane.showMessageDialog(null, "日期是:" + dff.format(c.getTime()));

}

});

}
}


我在说's blog   http://www..cn
2007-02-28 23:30
快速回复:[求助]计算若干天数后的日期值(已解决)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036661 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved