Java 显示日历是一个非常有用的功能,它可以帮助我们更好地管理时间。在 Java 中,我们可以使用 java.util.Calendar 类来显示日历。Calendar 类提供了一个静态方法 getInstance(),它返回一个 Calendar 对象,该对象表示当前时间。
// 获取当前时间的 Calendar 对象 Calendar calendar = Calendar.getInstance(); // 获取年份 int year = calendar.get(Calendar.YEAR); // 获取月份(注意月份是从 0 开始的) int month = calendar.get(Calendar.MONTH); // 获取天数 int day = calendar.get(Calendar.DAY_OF_MONTH);
上面的代码将获得当前时间的年、月、日信息。然后我们就可以使用这些信息来显示一个完整的日历了。要显示一个完整的日历,我们需要先计算出当前月的天数和上个月的天数:
// 计算当前月的天数 int daysOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); // 计算上个月的天数 calendar.add(Calendar.MONTH, -1); int daysOfLastMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
然后我们就可以根据这些信息来显示一个完整的日历了。例如:
// 打印表头 System.out.println("Sun Mon Tue Wed Thu Fri Sat"); // 打印上个月开始到当前月开始之间的所有天数 for (int i = 0; i < dayOfWeek; i++) { System.out.print(" " + (daysOfLastMonth - dayOfWeek + 1 + i) + " "); } // 打印当前月所有天数 for (int i = 1; i <= daysOfMonth; i++) { System.outJPA 日历映射到日期示例
JPA教程 - JPA日历映射到日期示例
以下部分显示如何将java.util.Calendar映射到数据库日期类型。
@Temporal(TemporalType.DATE) private java.util.Calendar dob;例子
下面的代码来自Person.java。
package cn..common; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Temporal; import javax.persistence.TemporalType; @Entity public class Person { @Id private long id; private String name; @Temporal(TemporalType.DATE) private java.util.Calendar dob; public Person() {} public Person(String name) { this.name = name; } public java.util.Calendar getDob() { return dob; } public void setDob(java.util.Calendar dob) { this.dob = dob; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String toString() { return "nnID:" + id + "nName:" + name + "nn"+"Dob"+dob; } }下面的代码来自PersonDaoImpl.java。
package cn..common; import java.util.Calendar; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import org.springframework.transaction.annotation.Transactional; @Transactional public class PersonDaoImpl { public void test(){ Person p1 = new Person("Tom"); p1.setId(1L); p1.setDob(Calendar.getInstance()); Person p2 = new Person("Jack"); p2.setId(2L); save(p1); save(p2); listAll(); } private void listAll(){ List<Person> persons = getAll(); for (Person person : persons) { System.out.println(person); } } @PersistenceContext private EntityManager em; public Long save(Person person) { em.persist(person); return person.getId(); } public List<Person>getAll() { return em.createQuery("SELECT p FROM Person p", Person.class).getResultList(); } }以下代码来自App.java。
package cn..common; import org.springframework.context.support.ClassPathXmlApplicationContext; public class App { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "applicationContext.xml"); PersonDaoImpl dao = (PersonDaoImpl) context.getBean("personDao"); dao.test(); context.close(); Helper.checkData(); } }下载 Map_Calendar_to_Date.zip以下是数据库表转储。
Table Name: PERSON Row: Column Name: ID, Column Type: BIGINT: Column Value: 1 Column Name: DOB, Column Type: DATE: Column Value: 2014-12-29 Column Name: NAME, Column Type: VARCHAR: Column Value: Tom Row: Column Name: ID, Column Type: BIGINT: Column Value: 2 Column Name: DOB, Column Type: DATE: Column Value: null Column Name: NAME, Column Type: VARCHAR: Column Value: Jack
JPA教程 -JPA ElementCollection通用目标实体示例以下部分显示如何将Java集合映射到数据库。它使用@ElementCollection注释来标记...
JPA教程 -JPA 嵌入式ID示例以下代码显示了如何将类用作嵌入式ID。首先它创建一个Embeddable实体。@Embeddablepublic class Profe...
JPA教程 -JPA双向一对一映射示例以下代码显示了如何进行双向一对一映射。例子下面的代码来自Department.java。package cn..commo...