java实现一个日期的操作

来源:互联网 发布:家里蹲 知乎 编辑:程序博客网 时间:2024/06/11 03:04

最近做东西碰到一个对日期操作的需求

传入一个准确的日期然后确定此日期所在的周的周一和周日的日期

通过对java中日期类的学习完成如下:

import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import javax.xml.crypto.Data;public class Snippet {public Snippet() {}/** * 返回这个日期所在的周的周一的日期 */public Date getPreviousWeekDay(java.util.Calendar gc) {switch (gc.get(Calendar.DAY_OF_WEEK)) {case (Calendar.MONDAY):return gc.getTime();case (Calendar.TUESDAY):gc.add(Calendar.DATE, -1);break;case (Calendar.WEDNESDAY):gc.add(Calendar.DATE, -2);break;case (Calendar.THURSDAY):gc.add(Calendar.DATE, -3);break;case (Calendar.FRIDAY):gc.add(Calendar.DATE, -4);break;case (Calendar.SATURDAY):gc.add(Calendar.DATE, -5);break;case (Calendar.SUNDAY):gc.add(Calendar.DATE, -6);break;default:return null;}return gc.getTime();}/** * 返回这个日期所在的周的周日的日期 */public Date getEndWeekDay(java.util.Calendar gc) {switch (gc.get(Calendar.DAY_OF_WEEK)) {case (Calendar.MONDAY):gc.add(Calendar.DATE, +6);break;case (Calendar.TUESDAY):gc.add(Calendar.DATE, +5);break;case (Calendar.WEDNESDAY):gc.add(Calendar.DATE, +4);break;case (Calendar.THURSDAY):gc.add(Calendar.DATE, +3);break;case (Calendar.FRIDAY):gc.add(Calendar.DATE, +2);break;case (Calendar.SATURDAY):gc.add(Calendar.DATE, +1);break;case (Calendar.SUNDAY):return gc.getTime();default:return null;}return gc.getTime();}  public String formatDate(Calendar cal) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String str = sdf.format(cal.getTime());return str;}public static void main(String[] args) {Snippet snippet = new Snippet();Calendar cal = Calendar.getInstance();cal.add(5, +120);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String str = sdf.format(cal.getTime());System.out.println("传入的日期是:" + str);System.out.println("这周的开始的一天是"+ sdf.format(snippet.getPreviousWeekDay(cal)));System.out.println("这周的结束的一天是"+ sdf.format(snippet.getEndWeekDay(cal)));}}



原创粉丝点击