本文目录一览:
用java定义一个日期类,急!!!
class MyDate {
public int year, month, day;
public MyDate(MyDate date) {
year = date.year;
month = date.month;
day = date.day;
}
public boolean isLeapYear() {
return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0));
}
public MyDate(int y, int m, int d) {
year = y;
month = m;
day = d;
if (((month == 1) || (month == 3) || (month == 5) || (month == 7) || (month == 8) || (month == 10) || (month == 12)) && ((day < 1) || (day > 31)))
System.out.println("wrong date");
if (((month == 4) || (month == 6) || (month == 9) || (month == 11)) && ((day < 1) || (day > 30)))
System.out.println("wrong date");
if (month == 2) {
if (isLeapYear() && ((day < 1) || (day > 29))) System.out.println("wrong date");
if (!isLeapYear() && ((day < 1) || (day > 28))) System.out.println("wrong date");
}
}
public boolean equal(MyDate date) {
return (year == date.year && month == date.month && day == date.day);
}
public void incrementDay() {
if ((month == 1) || (month == 3) || (month == 5) || (month == 7) || (month == 8) || (month == 10)) {
int flag = 0;
if (day == 31) {
month += 1;
flag = 1;
}
if ((day < 30) && (day > 1)) {
day += 1;
}
if (flag == 1) day = 1;
flag = 0;
}
if ((month == 4) || (month == 6) || (month == 9) || (month == 11)) {
int flag = 0;
if (day == 30) {
month += 1;
flag = 1;
}
if ((day < 29) && (day > 1)) {
day += 1;
}
if (flag == 1) day = 1;
flag = 0;
}
if (month == 12) {
int flag = 0;
if (day == 31) {
year += 1;
month = 1;
flag = 1;
}
if ((day < 30) && (day > 1)) {
day += 1;
}
if (flag == 1) day = 1;
flag = 0;
}
if (month == 2) {
int flag = 0;
if (isLeapYear()) {
if (day == 29) {
month += 1;
flag = 1;
}
if ((day < 28) && (day > 1)) {
day += 1;
}
if (flag == 1) day = 1;
flag = 0;
} else {
if (day == 28) {
month += 1;
flag = 1;
}
if ((day < 27) && (day > 1)) {
day += 1;
}
if (flag == 1) day = 1;
flag = 0;
}
}
}
public int getYear() {
return year;
}
public int getMonth() {
return month;
}
public int getDay() {
return day;
}
public String toString() {
return (year + "-" + month + "-" + day);
}
}
public class Mytest {
public static void main(String[] test) {
MyDate date1 = new MyDate(2000, 2, 28);
MyDate date2 = new MyDate(2006, 12, 31);
MyDate date3 = new MyDate(date2);
System.out.println(date3.equal(date2));
date1.incrementDay();
System.out.println(date1.getYear() + " " + date1.getMonth() + " " + date1.getDay());
System.out.println(date1.toString());
date2.incrementDay();
System.out.println(date2.getYear() + " " + date2.getMonth() + " " + date2.getDay());
System.out.println(date2.toString());
}
}
java程序定义一个日期类
正好我这有一个日期的工具类,你参考一下。我是直接黏贴进来的,看起来感觉有点乱,你复制后放到 Eclipse 里看就整齐了。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.junit.Test;
/**
* @author Administrator
* 各种日期、时间转换的示例总结:
*/
public class DateFormatUtil {
/**
* 将当前时间转换成指定格式的日期形式的字符串输出
*/
@Test
public void dateToStr() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = sdf.format(new Date());
System.out.println(dateString);
}
/**
* 将给定时间格式的字符串,解析成 Date 输出
* @throws ParseException
*/
@Test
public void strToDate() throws ParseException {
String str = "201012241002"; // yyyyMMddhhmm
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmm");
Date date = sdf.parse(str);
System.out.println(date);
}
/**
* 字符串,格式化为指定字符串
* @throws ParseException
*/
@Test
public void formatstr() throws ParseException {
String str = "20170314155847"; // yyyyMMddHHmmss
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str2 = sdf2.format(sdf.parse(str));
System.out.println(str2);
}
/**
* 操作时间:当前时间减去一天,一月,一年
*/
@Test
public void oprateDate() {
Date date = new Date(); // 获取当前时间
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
// calendar.add(Calendar.YEAR, -1); // 当前时间减去一年,即一年前的时间
// calendar.add(Calendar.MONTH, -1); // 当前时间减去一个月,即一个月前的时间
calendar.add(Calendar.DATE, -1);
Date time = calendar.getTime(); // 获取一年前的时间,或者一个月前的时间
System.out.println(time);
}
}
java中如何定义日期型数据?
可能是你没导入包的原因,解决方法,两种:
- 在文件顶部导入包:
import java.util.Date;
- 声明时写全:
java.util.Date birthday;