?判断两个日期

问题描述

是这样的一个问题我要写一个方法publicvoidgettick(intdaya,intdayb){}daya,dayb都是int型的。比如20090420现在是传进去两个日期,int型的。股票是星期六和星期天的都不交易的我要判断它们之间有多少日期是交易日期请高手写个方法,谢谢了。

解决方案

解决方案二:
可用Data或Calendar类的getTime()方法,得到两时间隔,再判断该间隔内有几个星期。
解决方案三:
up
解决方案四:
这个难度有点大,还有公共假日呢。只能一天一天的数。
解决方案五:
这个实现起来还是挺复杂的
解决方案六:
如果要算公休假的话,恐怕需要提供公休假的集合,并且这个也是随着国家政策变化的。。。如果单纯的是双休日的话,是可以的,先看中间间隔了多少个完整的星期,再把剩下的不足七天的循环判断一下就可以了,代码写了一下,不知道有没有疏漏,但思路基本就是这样的publicstaticintgetNum(intbegin,intend)throwsParseException{SimpleDateFormatsdf=newSimpleDateFormat("yyyyMMdd");Dateb=sdf.parse(String.valueOf(begin));Datee=sdf.parse(String.valueOf(end));intn=(int)(((e.getTime()-b.getTime())/(24*60*60*1000))+1);//相差天数intweek=n/7;//跨越的完整周期intday=n%7;//不足的日期Calendarc=Calendar.getInstance();//开始日期c.setTime(b);//处理除去完整的周期后剩下的日期intlastDay=(c.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY||c.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY?1:0);for(inti=1;i<day;i++){c.add(Calendar.DAY_OF_MONTH,1);if(c.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY||c.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY)lastDay++;}returnlastDay+week*2;}

解决方案七:
参考一下这个diffDayCount方法里面加上周末的判断就可以了。
解决方案八:
学习
解决方案九:
学习
解决方案十:
ding
解决方案十一:
up!!!
解决方案十二:
它们之间有多少日期是交易日期?我和5楼有些不同:publicintgetNum(intbegin,intend)throwsParseException{SimpleDateFormatsdf=newSimpleDateFormat("yyyyMMdd");Dateb=sdf.parse(String.valueOf(begin));Datee=sdf.parse(String.valueOf(end));intn=(int)(((e.getTime()-b.getTime())/(24*60*60*1000))+1);//相差天数intweek=n/7;//跨越的完整周期intday=n%7;//不足的日期intchangeTime;if(day<=5){changeTime=week*5+day;}else(day>5&&day<8){changeTime=(week+1)*5;}returnchangeTime;}
解决方案十三:
这个确实要考虑很多
解决方案十四:
交易日数取得(考虑到开始日是周六,结束日是周日的情况):publicstaticintgetTradingDays(intdate1,intdate2){StringstrDate1=String.valueOf(date1);StringstrDate2=String.valueOf(date2);SimpleDateFormatsdf=newSimpleDateFormat("yyyyMMdd");CalendarcldDate1=Calendar.getInstance();CalendarcldDate2=Calendar.getInstance();try{cldDate1.setTime(sdf.parse(strDate1));cldDate2.setTime(sdf.parse(strDate2));}catch(ParseExceptionpe){pe.printStackTrace();}intweekDayNo1=cldDate1.get(Calendar.DAY_OF_WEEK);intweekDayNo2=cldDate2.get(Calendar.DAY_OF_WEEK);weekDayNo1=weekDayNo1==Calendar.SUNDAY?7:weekDayNo1-1;weekDayNo2=weekDayNo2==Calendar.SUNDAY?7:weekDayNo2-1;intbeginWeekDays=weekDayNo1>5?0:5-weekDayNo1+1;intendWeekDays=weekDayNo2>5?5:weekDayNo2;cldDate1.add(Calendar.DATE,7-weekDayNo1+1);cldDate2.add(Calendar.DATE,-1*weekDayNo2);longdays=(cldDate2.getTimeInMillis()-cldDate1.getTimeInMillis())/(24*60*60*1000)+1;days=days-(days/7)*2+beginWeekDays+endWeekDays;return(int)days;}
解决方案十五:
kandaogeweigaorendetiezi,wokuiduifumuwoyaoxuexi

时间: 2024-09-15 02:26:25

?判断两个日期的相关文章

php判断两个日期之间相差多少个月份的方法

  本文实例讲述了php判断两个日期之间相差多少个月份的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 /** * @author injection(injection.mail@gmail.com) * @var date1日期1 * @var date2 日期2 * @var tags 年月日之间的分隔符标记,默认为'-' * @return 相差的月份数量 * @example: $date1 = "

Java判断两个日期相差天数的方法_java

本文实例讲述了Java判断两个日期相差天数的方法.分享给大家供大家参考.具体如下: import java.util.Calendar; public class DateDifferent{ public static void main(String[] args){ Calendar calendar1 = Calendar.getInstance(); Calendar calendar2 = Calendar.getInstance(); calendar1.set(2007, 01,

php判断两个日期之间相差多少个月份的方法_php技巧

本文实例讲述了php判断两个日期之间相差多少个月份的方法.分享给大家供大家参考.具体实现方法如下: /** * @author injection(injection.mail@gmail.com) * @var date1日期1 * @var date2 日期2 * @var tags 年月日之间的分隔符标记,默认为'-' * @return 相差的月份数量 * @example: $date1 = "2003-08-11"; $date2 = "2008-11-06&qu

javascript 判断两个日期之差的示例代码_时间日期

日期差我们需要像php中一样把如2015-08-30这种转换成秒之后再利用两个日期的秒数进行相减之后再加起判断就可以了,如果判断日期相等就简单多了在文章最后有例子说明. 例子1,日期之差函数 function better_time(strDateStart,strDateEnd){ var strSeparator = "-"; //日期分隔符 var strDateArrayStart; var strDateArrayEnd; var intDay; strDateArraySt

C语言小程序 如何判断两个日期之差

输入两个日期,计算之间相差多少天. 用了两种方法实现,第二种利用结构体,代码比较清晰,其余的都一样   1.普通的写法 复制代码 代码如下: #include <stdio.h> int leapyear(int year) {  if((year%4==0 && year%100!=0) || year%400==0)   return 1;  else   return 0; } int days(int *day1, int *day2) {  int i=0;  int

C语言小程序 如何判断两个日期之差_C 语言

1.普通的写法 复制代码 代码如下: #include <stdio.h>int leapyear(int year){ if((year%4==0 && year%100!=0) || year%400==0)  return 1; else   return 0;}int days(int *day1, int *day2){ int i=0; int *tmp; int diff = 0; const int month[13]={0,31,28,31,30,31,30,

js判断两个日期是否相等的方法_javascript技巧

例如: 复制代码 代码如下: var date1 = new Date("2013-11-29");var date2 = new Date("2013-11-29");console.log(date1 == date2); //false 这里,date1和date2看上去是一样的,但是运行 date1 == date2 返回的却是false.这是因为date1.date2都是对象,类型为引用类型,所以如果需要比较他们,需要去比较他们的字面量值,而不是单纯的用

js 判断两个日期之差例子

例子,日期之差函数  代码如下 复制代码 function better_time(strDateStart,strDateEnd){    var strSeparator = "-"; //日期分隔符    var strDateArrayStart;    var strDateArrayEnd;    var intDay;    strDateArrayStart = strDateStart.split(strSeparator);    strDateArrayEnd =

Java函数2:计算两个日期相差的天数

import java.util.Scanner; public class HelloWorld { public static void main(String[] args){ // Scanner s = new Scanner(System.in); // System.out.println("请输入一个数字"); // int num = s.nextInt(); int SUM = Caluater_date_sub_day(2009,1,25,2008,1,10);