my date

public class MyDate
{
private int year,month,day;
private static int thisYear;
static {thisYear=2012;}
public MyDate(int year,int month,int day) {this.set(year,month,day);}
public MyDate() {this(1970,1,1);}
public MyDate(MyDate d) {this.set(d);}
public void set(int year,int month,int day)
{
this.year=year;
this.month=(month>=1&&month<=12)?month:1;
this.day=(day>=1&&day<=31)?day:1;
}
public void set(MyDate d)
{
set(d.year,d.month,d.day);
}
public int getYear()
{
return this.year;
}
public int getMonth()
{
return this.month;
}
public int getDay()
{
return this.day;
}
public String toString()
{
return year+"年"+String.format("%02d",month)+"月"+String.format("%02d",day)+"日";
}
public static int getThisYear()
{
return thisYear;
}
public static boolean isLeapYear(int year)
{
return year%400==0||year%100!=0&&year%4==0;
}
public boolean isLeapYear()
{
return isLeapYear(this.year);
}
public boolean equals(MyDate d)
{
return this==d||d!=null&&this.year==d.year&& this.month==d.month &&this.day==d.day;
}
public static int daysOfMonth(int year,int month)
{
switch(month)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31;
case 4: case 6: case 9: case 11: return 30;
case 2: return MyDate.isLeapYear(year)?29:28;
default: return 0;
}
}
public int daysofMonth()
{
return daysOfMonth(this.year,this.month);
}
public void tomorrow()
{
this.day++;
if(this.day>this.daysofMonth())
{
this.day=1;
this.month++;
if(this.month>12)
{
this.month=1;
this.year++;
}
}
}
public MyDate yestoday()
{
MyDate date=new MyDate(this);
date.day--;
if(date.day==0)
{
date.month--;
if(date.month==0)
{
date.month=12;
date.year--;
}
date.day=daysOfMonth(date.year,date.month);
}
return date;
}
public int getWeek()
{
int i,j=0;
for(i=0;i<this.year;i++)
{
if(MyDate.isLeapYear(i))
j++;
if(j>6)
j=0;
}
for(i=0;i<this.month;i++)
{
i+=MyDate.daysOfMonth(this.year, this.month);
}
j+=i%7;
if(j>6)
j-=7;
return j;
}
public String toWeekString()
{
int i;
i=getWeek();
switch(i)
{
case 0:return "星期一";
case 1:return "星期二";
case 2:return "星期三";
case 3:return "星期四";
case 4:return "星期五";
case 5:return "星期六";
case 6:return "星期天";
}
return null;
}
}
class MyDate_ex
{
public static void main(String args[])
{
System.out.println("今年是"+MyDate.getThisYear()+",闰年?"+MyDate.isLeapYear(MyDate.getThisYear()));
MyDate d1=new MyDate(2012,12,31);
MyDate d2=new MyDate(d1);
System.out.println("d1: "+d1+",d2: "+d2+",d1==d2? "+(d1==d2)+", d1.equals(d2)? "+d1.equals(d2));
System.out.print(d1+"的明天是 ");
d1.tomorrow();
System.out.println(d1+"\n"+d1+"的昨天是 "+(d2=d1.yestoday()));
System.out.println(d1+"是 "+d1.toWeekString());
System.out.println(d1);
System.out.println(d2);
}

}

时间: 2024-11-07 02:35:12

my date的相关文章

js中获取时间new date()的用法

js中获取时间new date()的用法 获取时间:   var myDate = new Date();//获取系统当前时间 获取特定格式的时间: 1 myDate.getYear(); //获取当前年份(2位) 2 myDate.getFullYear(); //获取完整的年份(4位,1970-????) 3 myDate.getMonth(); //获取当前月份(0-11,0代表1月) 4 myDate.getDate(); //获取当前日(1-31) 5 myDate.getDay();

Linux常用命令(echo、date、ls、cd、history、cat)

一.linux常用命令有很多今天我们来总结一下常用的入门命令: 1.linux下关机命令:poweroff.init 0.halt.shutdown -h now 2.linux下重启命令:reboot.init 6.shutdown -r now 3.shutdown命令: 格式:shutdown  options TIME 其中options有以下几个: -r:执行重启 -c:取消shutdown命令 -h:执行关机 其中TIME有以下几个: now:表示现在 +m:相对时间表示法,从命令提

20.1 Shell脚本介绍;20.2 Shell脚本结构和执行;20.3 date命令用法;20.4 Shell脚本中的变量

20.1 Shell脚本介绍 1. shell是一种脚本语言 aming_linux blog.lishiming.net 2. 可以使用逻辑判断.循环等语法 3. 可以自定义函数 4. shell是系统命令的集合 5. shell脚本可以实现自动化运维,能大大增加我们的运维效率 20.2 Shell脚本结构和执行 1. 开头(首行)需要加: #!/bin/bash 2. 以#开头的行作为解释说明: 3. 脚本的名字以.sh结尾,用于区分这是一个shell脚本 4. 执行.sh脚本方法有两种:

new Date()的用法

获取时间: 1 var myDate = new Date();//获取系统当前时间 获取特定格式的时间: 1 myDate.getYear(); //获取当前年份(2位) 2 myDate.getFullYear(); //获取完整的年份(4位,1970-????) 3 myDate.getMonth(); //获取当前月份(0-11,0代表1月) 4 myDate.getDate(); //获取当前日(1-31) 5 myDate.getDay(); //获取当前星期X(0-6,0代表星期天

Date常用转换、比较

在项目开发过程中,遇到了一个需要把本年本月的充值超过1000元的用户都获取出来,但是我数据库时间存的是int类型.所以不知道where的条件语句怎么写,特此查了一下,再此总结一下,希望对需要的朋友能有所帮助. 总体思想是获取出来本月初和本月末的时间转化成int在where查询条件为之间的值. 引发出的问题:1) java获取当前系统时间 2)获取月初的月末的时间 3)时间格式转化成int 3. 时间转化用到的两个类 import java.util.Calendar; (日历) import j

Java日期时间(Date/Time)

获取当前日期和时间 在Java中容易得到当前的日期和时间.可以使用一个简单的Date对象的toString()方法,如下所示打印当前日期和时间: import java.util.Date; public class DateDemo { public static void main(String args[]) { // Instantiate a Date object Date date = new Date(); // display time and date using toStr

常用工具类(System,Runtime,Date,Calendar,Math)

一.Sy 一个java.lang包中的静态工具类. 三大字段: static PrintStream err "标准"错误输出流. static InputStream in "标准"输入流. static PrintStream out "标准"输出流. 其他常用方法: 描述系统信息: 获取系统属性信息: static Properties getProperties(): (Properties是Hashtable的子类,也就是Map 的子类

Oracle关于date类型数据的总结

往Oracle数据库中插入日期型数据(to_date的用法) INSERT  INTO  FLOOR  VALUES  ( to_date ( '2007-12-20 18:31:34' , 'YYYY-MM-DD HH24:MI:SS' ) ) ; 查询显示:2007-12-20 18:31:34.0 ------------------- INSERT  INTO  FLOOR  VALUES  ( to_date ( '2007-12-14 14:10' , 'YYYY-MM-DD HH2

Java基础之Date类

Date类表示特定的瞬间,精确到毫秒. 有2种方法可以创建Date对象(这里不考虑已过时的构造函数) 1.public Date()--分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒). 1 @Test 2 public void test1() { 3 Date date = new Date(); 4 System.out.println(date); 5 } Sun Oct 23 22:39:14 CST 2016 2.public Date(long date)--根

js内置对象-Date对象

Date对象: Data对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒). 定义: //默认初始值定义: var dataName=new Date(); /*使用关键字new;Data首字母必须大写 使dataName成为对象,同时具有初始值:当前电脑系统时间*/ //自定义初始值定义: var dataName=naw Data(2016,5,25); //或者: var dataName=new Data('May 25,2016'); Data对象中,用来处理时间和日期