`
conkeyn
  • 浏览: 1518149 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

日期中的特殊加减计算方法

阅读更多

1、某个日期加/减去几个月,得到新的日期

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Test {

	// 1970中的70的意思。主要用于当传进两位的年份时进行判断。
	public static int YY_PART_YEAR = 70;
	/**
	 * @param args
	 * @throws IOException 
	 * @throws NumberFormatException 
	 */
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		System.out.println("输入年份");  
		int sourceYear = Integer.parseInt(br.readLine());
		System.out.print("输入月份");  
		int sourceMonth = Integer.parseInt(br.readLine());
		System.out.println("输入要加的月份");
		int period = Integer.parseInt(br.readLine());
		
		// 计算总共多少个月
		// 减1是为了避开被12整除和取余的情况,月份中的1月及12月被合并在一起,变成0月。
		int totalMonths = sourceYear*12 + sourceMonth + period - 1;
		int targetYear = (int)totalMonths/12;
		// 在月份取余时把刚才减掉的一个月补回来。
		// 如:2009年12月减1个月,变成2009年11月,取余(为了避开12倍数)后将保留11月,然后再补回来。
		int targetMonth = totalMonths%12 + 1;
		System.out.println(targetYear+"-"+targetMonth);
		
		System.out.println(convert_month_to_period(2010*12));

	}
	
	// 以下两个方法是从Mysql的源码中获取的。
	
	public static long convert_period_to_month(long period)
	{
		long a,b;
		  if (period == 0)
		    return 0L;
		  if ((a=period/100) < YY_PART_YEAR)
		    a+=2000;
		  else if (a < 100)
		    a+=1900;
		  b=period%100;
		  return a*12+b-1;
		}
	public static long convert_month_to_period(long month)
	{
	  long year;
	  if (month == 0L)
	    return 0L;
	  if ((year=month/12) < 100)
	  {
	    year+=(year < YY_PART_YEAR) ? 2000 : 1900;
	  }
	  return year*100+month%12+1;
	}

}

2、转自:http://zhidao.baidu.com/question/63595877

   我要算的是比如说2008年08月减去2007年11月的结果,意思是说某一年和某一年之间的月份差,要怎么计算?

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test21
{

    public static void main(String[] args) throws NumberFormatException,
            IOException
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("输入第一个年份");
        int yearFirst = Integer.parseInt(br.readLine());
        System.out.print("输入第一个月份");
        int monthFirst = Integer.parseInt(br.readLine());
        System.out.println("输入第二个年份");
        int yearSecond = Integer.parseInt(br.readLine());
        System.out.print("输入第二个月份");
        int monthSecond = Integer.parseInt(br.readLine());

        // 计算月份差算法
        int monthsub = (yearFirst - yearSecond) * 12 + (monthFirst - monthSecond);
        System.out.println("相差的月份" + monthsub);
    }
}

3、系统星期转换为中国的星期制

day_in_week = (7 + day_in_week - 1) % 7;
if(day_in_week == 0)
{
       day_in_week = 7;
}

 

4、月份换算归属为哪一个季度

import java.util.Date;

public class Test
{

    public static void main(String argv[])
    {
        Date d = new Date();
        int month = d.getMonth();
        int quarter = (int) (Math.floor(month * 3 / 10) + 1);
        System.out.println(quarter);
    }

}

 

1 2 3 4 5 6 7 8 9 10 11 12
乘3 3 6 9 12 15 18 21 24 27 30 33 36
除10 0.3 0.6 0.9 1.2 1.5 1.8 2.1 2.4 2.7 3.0 3.3 3.6
取整 0 0 0 1 1 1 2 2 2 3 3 3
加1 1 1 1 2 2 2 3 3 3 4 4 4

 

 

 

 

 

 

分享到:
评论

相关推荐

    SQL Server各种日期计算方法

    ### SQL Server中的日期计算方法详解 #### 概述 在SQL Server中进行日期计算是数据库管理及数据分析中不可或缺的一部分。本文将围绕如何在SQL Server环境中有效地处理与日期相关的计算问题展开,具体包括如何使用`...

    js日期计算

    本文将深入探讨如何利用JavaScript进行日期计算,包括但不限于日期格式化、日期加减、以及两个日期之间的差值计算。 #### 一、日期格式化:让日期展示更美观 在实际应用中,我们经常需要将日期以特定的格式显示,...

    计算处理时长 日期计算 SpringEl.zip

    此外,SpringEL还支持日期的加减操作,如增加或减少天数、月份或年份。例如,增加3天可以写作`${myDate.plusDays(3)}`,其中`myDate`是一个已有的日期对象。 2. **处理时长计算**: 要计算处理时长,首先需要记录...

    C#根据日期计算星期几,根据月份计算天数

    此外,还可以使用`DateTime`的`AddDays()`、`AddMonths()`、`AddYears()`等方法进行日期的加减运算。例如,增加30天: ```csharp DateTime newDate = specificDate.AddDays(30); ``` 以上就是C#中处理日期和时间的...

    IC卡日期转换软件及算法_共6种.rar

    这7种时间换算关系可能包括了不同日期间的加减运算、时间单位之间的转换(如秒、分钟、小时、天)、以及涉及到闰年的特殊规则等。 3. **4个小工具软件**:这些软件可能分别针对不同的日期转换场景,例如读取卡片...

    可以计算日期的计算器

    这个计算器不仅能够执行基本的数学运算,还能够处理日期的加减,为用户提供更丰富的功能。 首先,我们需要了解C#的基础知识,包括变量声明、条件语句、循环以及函数的使用。C#是一种面向对象的语言,因此我们还会...

    华为-华为od题库练习题之计算日期到天数转换.zip

    一旦有了两个日期对象,我们就可以进行加减运算,得到两个日期之间的差值。在Python中,可以使用`date对象1 - date对象2`来计算天数差,而在Java中,可以使用`java.time.Duration.between(date1, date2)`方法。 4....

    日期工具Java类

    通过Calendar类的实例,可以进行日期时间的加减、获取和设置日历字段的值等操作。例如,要获取当前时间的上一周,可以使用Calendar.add(Calendar.DATE, -7)方法。 3. SimpleDateFormat类: SimpleDateFormat类用于...

    T-SQL的日期计算

    本文将深入探讨T-SQL中用于日期计算的一些核心概念与技巧,包括如何使用`DATEDIFF`和`DATEADD`这两个关键函数来进行日期的加减操作。 #### 1. T-SQL日期函数简介 T-SQL提供了多种日期函数来帮助用户更有效地管理和...

    DB2 基础_ 日期和时间的使用

    例如,可以通过简单的加减运算来增加或减少指定的时间间隔: - `CURRENT_DATE + 1 YEAR;` - `CURRENT_DATE + 3 YEARS + 2 MONTHS + 15 DAYS;` - `CURRENT_TIME + 5 HOURS - 3 MINUTES + 10 SECONDS;` 要计算两个...

    字符型数据转换为日期型.rar

    1. 数据处理:日期型数据可以直接进行加减运算,计算两个日期之间的差值,而字符串则不能。 2. 查询优化:在数据库查询中,使用日期型字段进行比较比字符串更高效。 3. 格式化输出:日期型数据可以方便地按照不同...

    DB2 基础 日期和时间的使用.pdf

    DB2 支持使用自然语言风格的日期和时间计算,这使得日期和时间的加减运算变得非常直观和简单: - 当前日期加上一年:`CURRENT_DATE + 1 YEAR;` - 当前日期加上三年两个月十五天:`CURRENT_DATE + 3 YEARS + 2 ...

    jquery_datepicker日期选择器包含多种类型日期选择

    8. **日期计算**:`addDays`、`addMonths`等方法可用于在已选日期基础上进行加减操作,这在处理日期相关的业务逻辑时非常有用。 在实际项目中,我们通常会将这些功能与后端数据相结合,例如,通过AJAX获取并设置可...

    精彩编程与编程技巧-如何在 SQL 语句中使用日期?...

    - **DATEADD()**:对日期进行加减操作。 - **DATEDIFF()**:计算两个日期之间的差值。 - **DATEPART()**:提取日期的一部分,如年份、月份等。 - **CONVERT()** 和 **FORMAT()**:转换日期格式。 例如,如果你想要...

    五个PB日期控件.rar

    - 日期计算器可以快速加减日期,常见于人力资源或财务系统。 - 日期验证器确保用户输入的日期符合预设规则,防止错误数据。 - 自定义日历控件可能有更丰富的视图和交互,如周视图、月视图切换,以及事件标记等。 ...

    工业机器人-s7-300的时间日期处理问题.7z

    1. 时间计算:S7-300提供了加减运算函数,如“ADD_TIME”和“SUB_TIME”,用于对时间进行加减操作,例如计算两个时间点之间的差值。 2. 日期比较:可以使用比较指令(如EQ、LT、GT等)来比较两个日期或时间的先后...

    12个用一条语句写成的有关日期函数

    通过加减年份和月份来实现。 这些单语句日期函数展示了SQL的灵活性和强大性,它们可以帮助程序员快速处理复杂的日期问题,提高代码的简洁性和效率。在实际应用中,可以根据具体需求进行调整和扩展,以满足各种日期...

    下一日计算--c#

    在编程领域,尤其是在开发日历或者时间相关的应用时,经常需要处理日期的加减运算。本文将详细探讨如何使用C#编程语言实现“下一日计算”功能,即给定一个日期,输出其后一天的日期,同时考虑到闰年的特殊情况。 ...

    oracle中日期的相关操作

    - **日期加减**: Oracle提供了方便的方法来增加或减少日期: - 增加5秒: `SYSDATE + (5/24/60/60)` - 增加5分钟: `SYSDATE + (5/24/60)` - 增加5小时: `SYSDATE + (5/24)` - 增加5天: `SYSDATE + 5` - 减少5个...

    ESBDates v3.0.1 (日期/时间函数库)

    2. **日期运算**:用户可以进行日期的加减操作,例如增加或减少天数、月份或年份。这对于计算未来的日期或检查两个日期之间的间隔非常有用。 3. **时间格式化**:库提供了将日期和时间对象转换为各种格式的字符串的...

Global site tag (gtag.js) - Google Analytics