我希望电子表格行包含今天的日期,但仅限每隔一个星期四,在上午9:30更改。 举个例子:
下周四21.07.16它的shell包含" 21.07.16"。 直到星期四正好14天,4.08.16它包含这个日期而不是更改为4.08.16。
此外,我希望这一变化发生在上午9:30。
我想不出怎么做的方法。你能指点我的方向吗?
答案 0 :(得分:2)
必须在过去的某个地方设置一个开始日期时间,例如2016年7月7日上午9:30。
然后找出当前和开始日期时间之间的差异。将此差异截断为14的倍数,并将此值添加到起始日期时间。
日期时间在表格中以数字表示为自1899年12月30日以来的天数。在此系统中,2016-07-07 9:30约为...
GLfloat points[] = {
0.5f, 0.5f, 0.0f, //First Triangle
-0.5f, 0.5f, 0.0f,
0.5f, -0.5f, 0.0f,
0.0f, 0.0f, 0.0f, //Second Triangle
-1.0f, 0.0f, 0.0f,
0.0f, -1.0f, 0.0f
};
GLuint vbo;
glGenBuffers(1, &vbo);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBufferData(GL_ARRAY_BUFFER, sizeof(points), points, GL_STATIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER, 0);
GLuint vao1;
glGenVertexArrays(1, &vao1);
glBindVertexArray(vao1);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, NULL);
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindVertexArray(0);
GLuint vao2;
glGenVertexArrays(1, &vao2);
glBindVertexArray(vao2);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (char*)NULL + 9);
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindVertexArray(0);
...
while (!glfwWindowShouldClose(window))
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glUseProgram(shader_program);
glBindVertexArray(vao1);
glDrawArrays(GL_TRIANGLES, 0, 3);
glBindVertexArray(0);
glBindVertexArray(vao2);
glDrawArrays(GL_TRIANGLES, 0, 3);
glBindVertexArray(0);
glUseProgram(0);
glfwPollEvents();
glfwSwapBuffers(window);
}
...
所以公式将是
42558.4
输出应格式化为日期。
一个不那么神秘的版本
=42558.4 + 14*floor((now()-42558.4)/14)
(=value("2016-07-07 09:30") + 14*floor((now() - value("2016-07-07 09:30"))/14)
遵循解析日期的本地约定,但我希望我所使用的格式将被普遍理解。)