根据给定的日期返回介于1和52之间的整数

时间:2016-06-08 15:54:12

标签: ruby-on-rails ruby date

我有一位客户给我的数据集分为几个季度,一个季度(四分之一的四分之一块)和几周。我正在编写一个快速参考算法来返回给定日期和年份的季度,周期,周,反之亦然。

他们的数据总是分为52周,其中第1周始终包含1月1日,从1月1日或1月1日开始。这就是他们处理365/7 = 52.142857难题的方式。

那么,是否有一个宝石或内置函数(cweek返回1-53),这将给我一个星期数,基于第1周总是包含Jan 1的前提或我是否需要设计一些额外的东西?

1 个答案:

答案 0 :(得分:4)

方式1. Date#strftime

    if(!Settings.canDrawOverlays(Activity.this){
        Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, URI.parse("package:" + getPackageName()));
        startActivityForResult(intent, REQ_CODE);
    }

方式2. Date#cweek

Date.new(2016,1,1).strftime("%U").to_i + 1 # week starts with Sunday
Date.new(2016,1,1).strftime("%W").to_i + 1 # week starts with Monday