java 周期时期计算

package org.apple.date;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 周期时间
 * @author shaoyu
 *
 */
public class CycleDate {

	public static void main(String[] args) {

		SimpleDateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");

		Calendar calendar = Calendar.getInstance();
		//calendar.setTime(new Date());
		System.out.println(calendar.get(Calendar.YEAR));
		System.out.println(calendar.get(Calendar.MONTH)+1);				// 月加1
		System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
		System.out.println("当月第几周:"+calendar.get(Calendar.WEEK_OF_MONTH));
		System.out.println("当年第几周:"+calendar.get(Calendar.WEEK_OF_YEAR));
		System.out.println(calendar.get(Calendar.DAY_OF_WEEK)-1);		// 周减1

		int hour_24 = calendar.get(Calendar.HOUR_OF_DAY);
		int hour_12 = calendar.get(Calendar.HOUR);
		int minute = calendar.get(Calendar.MINUTE);
		int second = calendar.get(Calendar.SECOND);
		System.out.println("24小时制      "+hour_24 +":"+ minute +":" + second);
		System.out.println("12小时制      "+hour_12 +":"+ minute +":" + second);

		System.out.println("当前时间:"+dateformat.format(calendar.getTime()) + " ||  毫秒数:"+ calendar.getTimeInMillis());

		calendar.add(Calendar.MONTH, 1);

		System.out.println("下一月当前时间:"+dateformat.format(calendar.getTime()) + " ||  毫秒数:"+ calendar.getTimeInMillis());

		calendar.add(Calendar.WEEK_OF_MONTH, 1);

		System.out.println("下一周当前时间:" + dateformat.format(calendar.getTime()) + " ||  毫秒数:"+ calendar.getTimeInMillis());

		calendar.add(Calendar.YEAR, 1);

		System.out.println("下一年当前时间:" + dateformat.format(calendar.getTime()) + " ||  毫秒数:"+ calendar.getTimeInMillis());

		//System.out.println("季度开始时间 : "+ dateformat.format(getCurrentQuarterStartTime()));
		System.out.println("下一季度结果时间: " + dateformat.format(getCurrentQuarterEndTime(calendar.get(Calendar.MONTH)+4)));
	}

	public Date lastDayOfMonth(Date date) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(Calendar.DAY_OF_MONTH, 1);
		calendar.roll(Calendar.DAY_OF_MONTH, -1);
		return calendar.getTime();
	}

	/**
	    * 当前季度的开始时间
	*/
    public static Date getCurrentQuarterStartTime() {
    	SimpleDateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar c = Calendar.getInstance();
        int currentMonth = c.get(Calendar.MONTH) + 1;
        Date now = null;
        try {
            if (currentMonth >= 1 && currentMonth <= 3)
                 c.set(Calendar.MONTH, 0);
             else if (currentMonth >= 4 && currentMonth <= 6)
                 c.set(Calendar.MONTH, 3);
             else if (currentMonth >= 7 && currentMonth <= 9)
                 c.set(Calendar.MONTH, 6);
             else if (currentMonth >= 10 && currentMonth <= 12)
                 c.set(Calendar.MONTH, 9);
             c.set(Calendar.DATE, 1);
             now = dateformat.parse(dateformat.format(c.getTime()) + " 00:00");
         } catch (Exception e) {
             e.printStackTrace();
         }
         return now;
     }

    /**
     * 当前季度的结束时间
     */
    public static Date getCurrentQuarterEndTime(int currentMonth) {
    	SimpleDateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar c = Calendar.getInstance();
        Date now = null;
        try {
            if (currentMonth >= 1 && currentMonth <= 3) {
                c.set(Calendar.MONTH, 2);
                c.set(Calendar.DATE, 31);
            } else if (currentMonth >= 4 && currentMonth <= 6) {
                c.set(Calendar.MONTH, 5);
                c.set(Calendar.DATE, 30);
            } else if (currentMonth >= 7 && currentMonth <= 9) {
                c.set(Calendar.MONTH, 8);
                c.set(Calendar.DATE, 30);
            } else if (currentMonth >= 10 && currentMonth <= 12) {
               c.set(Calendar.MONTH, 11);
               c.set(Calendar.DATE, 31);
           }
           now = dateformat.parse(dateformat.format(c.getTime()) + " 23:59");
       } catch (Exception e) {
           e.printStackTrace();
       }
       return now;
    }
}

  

时间: 2024-10-06 15:01:42

java 周期时期计算的相关文章

【Java】Float计算不准确

大家可能都遇到过,float在计算某些值时,会有不准确的情况. 比如如下情况: 计算不准确 package com.nicchagil.study.java.demo.No10float计算.No01不准确的举例; public class Call { public static void main(String[] args) { System.out.println(0.08f + 0.01f); } } 打印: 0.089999996 用BigDecimal代替计算 如果需要准确计算fl

java多线程之计算数量

package Thread.Abort; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; //计数类 class Count {//DATA priv

java通过经纬度计算两个点的之间的距离的算法

通过两个点的经纬度计算距离 从google maps的脚本里扒了段代码,没准啥时会用上.大家一块看看是怎么算的.private const double EARTH_RADIUS = 6378.137;private static double rad(double d){   return d * Math.PI / 180.0;} public static double GetDistance(double lat1, double lng1, double lat2, double ln

第二章 Java浮点数精确计算

1.实际意义 在实际开发中,如果需要进行float或double的精确计算(尤其是财务计算),直接使用float或double是不行的(具体的例子看下边的代码的main方法的测试结果),需要使用BigDecimal. 2.代码 package com.xxx.util; import java.math.BigDecimal; /** * 浮点数精准算法 */ public class BigDecimalArithUtil { private static final int DIV_SCAL

java根据日期计算24节气

1 package com.test; 2 3 import java.util.Calendar; 4 import java.util.Date; 5 6 /** 7 * Created by json 8 */ 9 public class SolarTermsUtil { 10 /** 11 * 计算得到公历的年份 12 */ 13 private int gregorianYear; 14 15 /** 16 * 计算得到公历的月份 17 */ 18 private int grego

hadoop分布式系统下的mapreduce java小程序计算网站uv

一.准备工作 1.1 搭建hadoop分布式系统,博主是用3台虚拟机搭建的一个简易hadoop分布式系统. linux 5.5 64位     hadoop2.6.0 192.168.19.201   h1   (master) 192.168.19.202   h2   (slaver1) 192.168.19.203   h3   (slaver2) 1.2 准备网站访问IP文件 由于是实验,一个简单的txt文件即可 如:vim a.txt 10.0.0.1 10.0.0.2 10.0.0.

java版复利计算

这是我修改为java的初定界面,还有很多细节问题还没有解决,希望老师可以给我多点的点评,接下来继续努力,我会把每一次的进步发上来,不断的去锻炼. 1.我所用的开发工具是ecipse 2.所有的语言为java 3.开发者:蔡彩虹 4.所用的插件为:swing 代码就不上传,就解释一下所实现的功能,目前,编写的类有8个,分别是: Account1.java: BestEfficiency.java: CompoundAccount.java: fundAccount.java: PrincipalA

JAVA中精确计算金额BigDecimal

package com.chauvet.utils; import java.math.BigDecimal;import java.text.DecimalFormat;import java.text.NumberFormat; /*** * * 金额 * * 如果需要精确计算,必须用String来够造BigDecimal! !! * * Java里面的商业计算,不能用float和double,因为他们无法 进行精确计算. * 但是Java的设计者给编程人员提供了一个很有用的类BigDeci

java浮点类型计算

java浮点类型需要采用java.math.*这个工具包,这样的计算结果才是我们想要的.呵呵 1 import java.math.BigDecimal; 2 import java.text.NumberFormat; 3 4 5 /** 6 * 数学计算类 7 * @author mingge 8 * 9 */ 10 public class ArithUtil { 11 12 private ArithUtil(){ 13 14 } 15 16 /** 17 * 浮点数加法 18 * @p