我喜欢在一个日期范围内迭代所有的星期,时间范围为2年。从两年前的本周数开始,一直到今年的本周数。
问题是一年可以有52周,也可以有53周,例如:
2015年有53周(第53周从2015-12-28到2016-01-03)
2016年有52周(第52周从2016-12-26到2017-01-01)
因此,这是当前我的php代码:
# start with the current week 2 years ago
$year = date("Y") - 2;
$week = (int) date("W"); // (int) removes l
问题
下面的mcve将在两个日期之间输出一个星期数数组。当这两天都在同一年的时候,它是有效的,然而,有些年份有52周的时间,并且在最后一年的最后几天开始。其他人有53周的时间。
52周的一个例子是
第一周从12月30日开始。
53周的例子是
从1月4日开始。
代码
下面的代码是注释的,并输出一个数组的星期数。
Sub w_test()
Dim Arr() As Variant, ArrDateW() As Variant
'Initial Date
DateI = DateSerial(2015, 5, 5)
'Final D
想把df.Month爆到几个星期,把数量平均分配到几个星期。周从星期一开始。
df
Country Item Month Qty
-------------------------------------------
0 New Zealand Apple 2017-10-31 100
1 Puerto Rico Banana 2017-11-30 200
2 France Apple 2017-10-31 400
我需要找到所有在2017年有第一个订单的客户,并在2018年总结他们的收入。我在SQL子句中尝试这样做时遇到了问题。 在我的表格中,我有3个客户,其中2个在2017-05-23首次订购,1个在2016-06-23。所以我想过滤掉2016年订购的那个客户。在表中,我有几个字段: client、income、order_date。 这是我在MySQL中所拥有的: select client as 'Clients first order in 2017',
SUM(income) as 'Sum of income in 2018'
from o
Q The last day of a century cannot be
Monday
Friday
Wednesday
Tuesday
答:,,星期二
解释:
100年包括5天奇数。==>所以1世纪的最后一天是,,。
200年包含(5x2)3个奇数天。因此,第二世纪的最后一天是,==>,。
300年包含(5x3)= 15 1奇日。==> 3世纪的最后一天是,,。
400年里有0天。==> 4世纪的最后一天是Sunday。
这个循环是重复的。
所以一个世纪的最后一天不能是星期二
我被限制在使用PHP的DateTime::diff函数的几个星期和几个月。
这是我的密码:
$start = new DateTime('2017-06-05');
$end = new DateTime('2017-06-07');
$end->modify('+1 day');
$interval = $end->diff($start);
// total days
$days = $interval->days;
// create an iterateable period of date (P1D equate
我正在尝试为日历创建一个日期网格。当周日被指定为“一周的第一天”时,我让它发挥作用。
以星期日为一周的开始日(工作)
考虑到2017年3月,网格将以Sunday, February 26, 2017开始,以Saturday, April 1, 2017结束。我就是这样做的:
let now = moment('2017/03/06/', 'YYYY/MM/DD');
let startOfGrid = now.clone().startOf('month').startOf('week');
let endOfGrid = n
对于startDate和endDate,如下所示,如何在几个月和几天内确定期间(剩下的是什么):
String pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
SimpleDateFormat format = new SimpleDateFormat(pattern);
Date start = format.parse("2016-11-09T02:00:00.000Z");
Date end = format.parse("2017-09-30T09:00:00.000Z"
public static void getWeeksOfMonth(int month, int year)
{
SimpleDateFormat sdf = new SimpleDateFormat("EEEE dd-MMM-yyyy");
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, 1);
int n
我将如何将小数点转换成数个星期和几天?
例如,以以下数字为例:12.4893617021277
12是月数。然后.4893617021277将是几个星期和几天。
所以我希望输出类似于:12 months, 1 week and 6 days。
为了澄清,我不是在这里找确切的数字。我假设一个月有4周,一周有7天。
original = 12.4893617021277
4 weeks × .489361702127658 = 1.9574468085 weeks # That gives me 1 full week, with the remainder going in to the num
在业务运营环境中,报告的一个非常常见的时间间隔是每周报告总量,而与相同的财务报告周()则是按年计算。我使用ISO报告周号,报告周是星期日到星期六。
I希望通过where子句筛选器来完成这一任务,而不是加入日历表,这通常超出了普通SQL用户的范围。
当相邻年份有53个报告周时,这是很困难的,因为在减去52周后,报告周不会排成一列。
例如,考虑一个典型的成语,在那里,提前一年的约会会引起问题:
select ...
/* must be saturday run_date!!! */
where activity_day between job_run_date