java获取某段时间内所有的周一,获取某段时间内,日期是11号,请问怎么弄啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java获取某段时间内所有的周一,获取某段时间内,日期是11号,请问怎么弄啊相关的知识,希望对你有一定的参考价值。

java获取某段时间内所有的周一,获取某段时间内,日期是11号,请问怎么弄啊,求大神指导下

public static void main(String[] args)
Calendar cal = Calendar.getInstance();
//Java 中月 1 - 12 月,分别对应是 0 - 11
//设定目前日期为 2000/02/01(29天)
//cal.set(2000, 1, 1);
System.out.println("现在的时间: " + cal.getTime());
System.out.println("本月共有 : " + cal.getActualMaximum(Calendar.WEEK_OF_MONTH) + " 周");
int date_Count = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
//Java 中星期 日、一、二、三、四、五、六,分别对应是 1 - 7
if ((cal.get(Calendar.DAY_OF_WEEK)) == 1)
System.out.println("今天星期天");
else if ((cal.get(Calendar.DAY_OF_WEEK)) == 2)
System.out.println("今天星期一");
else if ((cal.get(Calendar.DAY_OF_WEEK)) == 3)
System.out.println("今天星期二");
else if ((cal.get(Calendar.DAY_OF_WEEK)) == 4)
System.out.println("今天星期三");
else if ((cal.get(Calendar.DAY_OF_WEEK)) == 5)
System.out.println("今天星期四");
else if ((cal.get(Calendar.DAY_OF_WEEK)) == 6)
System.out.println("今天星期五");
else if ((cal.get(Calendar.DAY_OF_WEEK)) == 7)
System.out.println("今天星期六");

追问

我想获取2014-05-17到2014-12-18号之间所有的周一,怎么写呢?

追答

Calendar cal = Calendar.getInstance();
cal.set(2014, 5, 17);
int s=0;
for(int i=0;i<365;i++)
cal.add(Calendar.DATE, i);//DATE=日
if ((cal.get(Calendar.DAY_OF_WEEK)) == 2)
s++;

if(DateUtil.formatDate("yyyy-mm-dd",cal.getTime()).equals("2014-12-18"))break;

System.out.println("总共出现过:"+s+"次星期一");

追问

cal.add(Calendar.DATE, i)应该是+1吧,其他我都看懂了,非常感谢

追答

cal.add(Calendar.DATE, i)<---
我的起始时间是2014-05-17所以你说的+1 会一直在同一个时间喔!!!

参考技术A

公交线路:地铁3号线 → 202路,全程

systom.out.println("你大爷");

约8.3公里

1、从总统府步行约580米,到达大行宫站

2、乘坐地铁3号线,经过5站, 到达卡子门站

3、步行约330米,到达城头城站

4、乘坐202路,经过3站, 到达雨花台南大门站

5、步行约190米,到达雨花台区

参考技术B 利用Cadenlar类追问

我想获取2014-05-17到2014-12-18号之间所有的周一,怎么写呢?

求某段时间内用户的连续活跃区间

drop table user_active ;
create table user_active(uid String,dt String)
row format delimited fields terminated by ',' stored as textfile;

``--原始数据
spark,2021-01-01
spark,2021-01-02
spark,2021-01-03
spark,2021-01-06
spark,2021-01-07
spark,2021-01-09
hive,2021-01-01
hive,2021-01-03
hive,2021-01-10
hive,2021-01-11
hive,2021-01-12
hive,2021-01-13

load data local inpath '/root/user_active.txt' overwrite into table user_active;

select 
t.uid,
date_sub(t.dt,t.rn) as sub,
min(t.dt),
count(1),
max(t.dt) 
from
    ( 
     select
       uid,
       dt,
       row_number() over(partition by uid order by dt) as rn
     from 
       user_active 
     where  dt>='2021-01-01' and dt<'2021-01-30' 
    )  t
group by uid,date_sub(t.dt,t.rn);

--子查询结果
uid     dt             rn
hive    2021-01-01      1
hive    2021-01-03      2
hive    2021-01-10      3
hive    2021-01-11      4
hive    2021-01-12      5
hive    2021-01-13      6
spark   2021-01-01      1
spark   2021-01-02      2
spark   2021-01-03      3
spark   2021-01-06      4
spark   2021-01-07      5
spark   2021-01-09      6


select 
t.uid,
date_sub(t.dt,t.rn) as sub
from
    (select
       uid,
       dt,
       row_number() over(partition by uid order by dt) as rn
     from 
       user_active 
     where  dt>='2021-01-01' and dt<'2021-01-30' 
    )  t
;

t.uid   sub
hive    2020-12-31
hive    2021-01-01
hive    2021-01-07
hive    2021-01-07
hive    2021-01-07
hive    2021-01-07

spark   2020-12-31
spark   2020-12-31
spark   2020-12-31
spark   2021-01-02
spark   2021-01-02
spark   2021-01-03

--最终结果
--uid    --sub         --活跃开始区间   --活跃天数   -- 区间截止时间
hive    2020-12-31      2021-01-01      1       2021-01-01
hive    2021-01-01      2021-01-03      1       2021-01-03
hive    2021-01-07      2021-01-10      4       2021-01-13

spark   2020-12-31      2021-01-01      3       2021-01-03
spark   2021-01-02      2021-01-06      2       2021-01-07
spark   2021-01-03      2021-01-09      1       2021-01-09`

以上是关于java获取某段时间内所有的周一,获取某段时间内,日期是11号,请问怎么弄啊的主要内容,如果未能解决你的问题,请参考以下文章

如何用git获取某段时间内的代码

java 某段时间内遍历出啊所有的年度 季度 月度 日 以及日期

PHP正则抓取字符串内某段字符

sql server 查询某段日期某段时间内的数据

求某段时间内星期几的天数

求某段时间内用户的连续活跃区间