`
听雪楼
  • 浏览: 10028 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

日期处理

    博客分类:
  • java
阅读更多
基础知识:   
公元1年1月1日是星期一   
一年有365天/366天(闰年)   
闰年规则:原则上4年1闰,但逢百时400才闰   
算法推理:   
365/7=52余1  
也就是说公元2年1月1日是星期二.....   
当然闰年会多过1天   
  
算法总结:A年B月C日   
1、每过去1年多1天,闰年再多1天,到上一年为止多了几天能算了吧。   
int count=(A-1)+(A-1)/4+(A-1)/400-(A-1)/100;   
  
2、从1月到上月今年过去的总天数,列个全年的数组能行吧(没考虑今年的闰月)   
int[] M={31,28,31,30,31,30,31,31,30,31,30,31};   
for(int i=1;i<B;i++){   
    count+=M[i];   
}   
  
3、如果今年是闰年且B>2  
count++   
  
4、到本月今天总天数   
count+=C;   
  
5、由于公元1年1月1日是星期一,再扣一天除7取余   
(count-1)%7  
0为星期天,以此类推   
  
  
根据日期获得星期几   
  
import java.util.Calendar;   
import java.util.Date;   
  
public class CountWeek {   
    
  public static String getWeekOfDate(Date dt){   
  String[] weekDays={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};   
  Calendar cal=Calendar.getInstance();   
  cal.setTime(dt);   
     
  int w=cal.get(Calendar.DAY_OF_WEEK)-1;   
  if(w<0)w=0;   
  return weekDays[w];   
       
}   
public static void main(String[] args) {   
System.out.println("今天是:"+CountWeek.getWeekOfDate(new Date()));   
}   
}    
  
public class ManageWeek {   
//判断两个日期是否在同一周   
boolean isSameWeekDates(Date date1, Date date2) {   
  Calendar cal1 = Calendar.getInstance();   
  Calendar cal2 = Calendar.getInstance();   
  cal1.setTime(date1);   
  cal2.setTime(date2);   
  int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);   
  if (0 == subYear) {   
    if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))   
   return true;   
  }   
  else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {   
    // 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周   
    if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))   
   return true;   
  }   
  else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {   
    if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))   
   return true;   
  }   
  return false;   
}   
    
    
//产生周序列   
public static String  getSeqWeek(){   
  Calendar c = Calendar.getInstance(Locale.CHINA);   
  String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));   
  if(week.length()==1)week = "0" + week;   
  String year = Integer.toString(c.get(Calendar.YEAR));     
  return year+week;   
     
}   
     
  //获得周一的日期   
  public static String getMonday(Date date){   
   Calendar c = Calendar.getInstance();   
   c.setTime(date);   
   c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);   
   return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());   
  }   
     
     
  //获得周五的日期   
  public static String getFriday(Date date){   
   Calendar c = Calendar.getInstance();   
   c.setTime(date);   
   c.set(Calendar.DAY_OF_WEEK,Calendar.FRIDAY);      
   return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());     
  }   
  
//当前日期前几天或者后几天的日期   
  
public static String afterNDay(int n){   
        Calendar c=Calendar.getInstance();   
        DateFormat df=new SimpleDateFormat("yyyy-MM-dd");   
        c.setTime(new Date());   
        c.add(Calendar.DATE,n);   
        Date d2=c.getTime();   
        String s=df.format(d2);   
        return s;   
    }   
     
  public static void main(String[] args){   
  
  }   
  
}   
分享到:
评论

相关推荐

    日期处理工具类

    在Java编程语言中,日期处理是一项常见的任务,用于管理和操作日期和时间。为了方便开发者,Java提供了多种工具类来处理日期。"日期处理工具类"通常是指一个自定义的类,它封装了一些常用的方法,例如日期格式化、...

    c语言日期处理程序

    在C语言中,日期处理是一项基础但重要的任务,它涉及到时间戳、日期格式化、日期比较和日期计算等。C语言本身并没有内置的日期库,但通过标准库中的`&lt;time.h&gt;`头文件,我们可以利用系统时间来实现日期的相关操作。...

    C++的日期处理类,功能强大

    在C++编程中,日期处理是一项常见的任务,尤其是在开发涉及日历、时间追踪或数据分析的应用程序时。C++标准库并没有内置一个强大的日期处理类,但可以通过自定义类或者使用第三方库来实现这一功能。本篇文章将深入...

    c#中的日期处理函数

    本文将深入探讨C#中的日期处理函数,特别是`DateTime`类的使用方法。 1. `DateTime` 类型是C#中用于表示日期和时间的内置类型。通过以下方式可以创建一个表示当前时间的`DateTime`对象: ```csharp System....

    Date4j,一个简约的日期处理类库

    Date4j是一个轻量级的日期处理类库,它的出现为Java开发者提供了一种更为简单易用的方式来处理日期和时间。这个库的目标是简化日期计算,避免使用Java标准库中的`java.util.Date`和`java.util.Calendar`这些复杂的...

    oracle日期处理函数大全

    以下是一些关键的Oracle日期处理函数和SQL语句的详细说明: 1. **TO_DATE函数**:用于将字符串转换为日期。例如,`TO_DATE('2022-04-05', 'YYYY-MM-DD')`将字符串'2022-04-05'转换为日期。日期格式必须与提供的模式...

    日期处理类

    在C++编程中,日期处理是一项常见的任务,特别是在开发涉及时间序列分析、日志记录或者时间敏感的应用程序时。为了方便地操作日期,我们可以自定义一个日期处理类,如标题所示的"日期处理类"。这个类通常会包含一...

    java日期处理总结

    java中关于日期处理的总结,包含各种日期格式之间的转java.util.Date(已经不提倡使用,该类的方法比较少) java.util.Calendar(抽象类) java.util.GregorianCalendar(是Calendar的子类,日期处理时候经常使用该类)****...

    oracle日期处理完全版

    Oracle数据库在日期处理方面提供了丰富的函数和操作方式,使得对日期和时间的管理变得非常灵活。以下是对标题和描述中提到的知识点的详细说明: 1. **日期和字符转换**: - `to_date` 函数用于将字符型数据转换为...

    oracle日期处理全集

    Oracle数据库在日期处理方面提供了丰富的函数,使得对日期和时间的操作变得非常灵活。以下是对给定文件中提及的Oracle日期处理函数的详细说明: 1. **add_months(d, n)**: 此函数将日期d加上n个月,返回新的日期。...

    java语言日期处理大全

    在Java编程中,日期处理是一项常见的任务,涉及到各种日期和时间的操作。以下是一些关于Java日期处理的关键知识点,这些知识点在给定的文件中有所提及: 1. **获取当前日期**: Java通过`java.util.Date`类可以...

    sql 日期处理常用方法

    本文将详细介绍SQL中日期处理的常用方法,包括获取当前系统时间、日期加减运算、计算日期差、提取日期部分、转换日期格式等功能。 ### 一、获取当前系统时间 在SQL Server中,`GETDATE()`函数用于返回当前的系统...

    MSSQL中日期处理

    在SQL Server中,日期处理是数据管理的核心部分,涉及到各种日期和时间的计算、比较以及格式化。本章主要探讨SQL Server中两种主要的日期类型:datetime和smalldatetime。 1. **日期类型概述** - **datetime**: ...

    Java日期处理工具类

    基本涵盖了各种场景的日期处理需要,包括时间类型转换,获取N天前后,月初月末,某段时间按天拆分等功能,欢迎使用。

    Java中日期处理的代码

    根据给定的文件标题、描述、标签以及部分内容,我们可以总结出以下有关 Java 日期处理的知识点: ### 1. 导入必要的包 在 Java 中处理日期时,我们需要导入一些必要的包来支持日期时间的格式化、解析等功能。示例...

    数据库oracle中日期处理

    在Oracle数据库中,日期处理是一项基础且重要的任务,它涉及到数据的存储、查询以及分析。Oracle提供了丰富的函数和操作符来处理日期,使得我们可以轻松地完成诸如计算星期几、两个日期之间的天数等常见需求。以下是...

    日期处理工具DateUtil

    `DateUtil`类通常被设计为一个工具类,用于提供方便、高效和灵活的日期处理功能。这个类集成了多种方法,帮助开发者进行日期格式化、获取当前时间等操作。下面我们将深入探讨`DateUtil`类可能包含的一些核心知识点。...

Global site tag (gtag.js) - Google Analytics