某日分析师提了个需求,求三个时间段的逻辑指标,昨天的好求,周累计——本周一至昨天的累计指标,如果今天是周一,则求出上周一整周的累计指标,月累计——本月1号至昨天的累计指标,同理如果今天是1号,则求出上月一整月的累计指标。
(在这里给自己记录下,游客可以不用看,生产上的报表一般都是昨天的数据,而我们获取的参数也是昨天的,为什么不能像推断昨天是不是周末来判断今天是不是周一呢,因为周一昨天是周末,而月一的昨天就不一定是几号了,这里通过参数求出今天的日期,在判断逻辑,这里主要是给自己记录下,避免以后陷入误区。)
真可谓开发都是被需求逼死的,不多说,经过研究代码如下:
if [ $# -eq 1 ]; then
n_date=`date -d "$1" +%Y-%m-%d`
else
n_date=`date -d "1 days ago" +%Y-%m-%d` #n_date=`date -d " -1 days" +%Y-%m-%d`
fi
#如果有日期,就选用参数日期,如果没有就选用昨天的日期(因为跑批都是昨天的,所以一般都是求出昨天的日期)
t_date=`date -d "${n_date} tomorrow" +%Y-%m-%d` #根据给定的日期,求出明天的日期 #t_date=`date -d "+1 days ${n_date}" +%Y-%m-