java中如何定义日期型数据(java定义日期类型)

发布时间:2022-11-09

本文目录一览:

  1. 用java定义一个日期类,急!!!
  2. java程序定义一个日期类
  3. java中如何定义日期型数据?

用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中如何定义日期型数据?

可能是你没导入包的原因,解决方法,两种:

  1. 在文件顶部导入包:import java.util.Date;
  2. 声明时写全:java.util.Date birthday;