问题列表 - 第26474页

将时间范围切成部分

第一个问题.要温柔.

我正在研究跟踪技术人员完成任务所花费时间的软件.需要增强软件以基于星期几和一天中的时间识别不同的可计费率乘数.(例如,"工作日下午5点以后的时间半.")

使用该软件的技术人员只需记录日期,开始时间和停止时间(以小时和分钟为单位).该软件有望在速率乘数改变时的边界处打破时间.一次性条目不允许跨越多天.

以下是费率表的部分样本.显然,第一级数组键是一周中的几天.第二级数组键表示新乘数启动时的时间,并运行到数组中的下一个连续条目.数组值是该时间范围的乘数.

[rateTable] => Array
    (
        [Monday] => Array
            (
                [00:00:00] => 1.5
                [08:00:00] => 1
                [17:00:00] => 1.5
                [23:59:59] => 1
            )

        [Tuesday] => Array
            (
                [00:00:00] => 1.5
                [08:00:00] => 1
                [17:00:00] => 1.5
                [23:59:59] => 1
            )
        ...
    )
Run Code Online (Sandbox Code Playgroud)

用简单的英语表示,从午夜到早上8点,从下午8点到下午5点,正常时间从5点到晚上11:59,时间为半年.这些中断发生的时间可以是第二次的任意时间,并且每天可以有任意数量的它们.(这种格式完全可以协商,但我的目标是让它尽可能易于阅读.)

例如:星期一从15:00:00(下午3点)到21:00:00(晚上9点)记录的时间条目包括2小时计费1x和4小时计费1.5x.单个时间条目也可以跨越多个中断.使用上面的示例rateTable,从上午6点到下午9点的时间条目将具有3个子范围,从6-8 AM @ 1.5x,8 AM-5PM @ 1x,以及5-9 PM @ 1.5x.相比之下,时间输入也可能只是从08:15:00到08:30:00,并且完全包含在单个乘数的范围内.

我真的可以使用一些帮助编写一些PHP(或至少设计一个算法),这可能需要一周中的一天,一个开始时间和一个停止时间,并解析到所需的子部分.将输出作为一个由(start,stop,multiplier)三元组的多个条目组成的数组是理想的.对于上面的示例,输出将是:

[output] => Array
    (
        [0] => Array
            (
                [start] => 15:00:00
                [stop] => 17:00:00
                [multiplier] => 1
            )

        [1] => Array
            (
                [start] …
Run Code Online (Sandbox Code Playgroud)

php time slice

20
推荐指数
1
解决办法
1522
查看次数

Scala/Lift Framework只在jetty Web服务器上运行?

我是Lift的新手,想知道它是否开发为只运行Jetty但没有其他Web服务器.任何的想法?

scala jetty lift

11
推荐指数
2
解决办法
2781
查看次数

Objective-C到Java交叉编译器

很明显Apple App Store不允许使用交叉编译器,因此开发人员需要熟悉Objective-C才能为iPhone创建应用程序.

我想知道,是否有一个交叉编译器将采用Objective-C应用程序代码并将其重建为可以为Android打包的类似Java应用程序?这样,开发人员仍然可以只学习一种语言(obj-c),但在许多设备上放置应用程序.

我知道Java端口不如本机编码的应用程序更优化,但可以想象可以节省开发人员一段时间.

编辑: 是的,应用程序会很糟糕.但它们是不是就像它们是由monotouch或flash交叉编译器构建的那么糟糕?难道不能使用这些交叉编译器使用的相同方法吗?

java iphone android cross-platform objective-c

7
推荐指数
1
解决办法
5149
查看次数

LINQ"OrderBy"使用什么排序算法?

显然LINQ的"OrderBy"最初被指定为不稳定,但到Orca时,它被指定为稳定.并非所有文档都已相应更新 - 请考虑以下链接:

但是,如果LINQ的OrderBy现在"稳定",那么这意味着它没有使用快速排序(这本质上是不稳定的),即使某些文档(例如Troy的书)说它是.所以我的问题是:如果不是快速排序,那么LINQ的orderBy使用的实际算法是什么?

linq sorting algorithm quicksort

49
推荐指数
3
解决办法
1万
查看次数

表明SQL语句很危险

我想在PHP中开发一个函数来检查SQL语句的危险程度.当我说危险时,我的意思是,某些符号,字符或字符串用于从数据库中获取用户看不到的数据.

例如:

SELECT*FROM users WHERE userId ='1'

可以通过几种方式注射.虽然我清理了params,但我也希望监控查询运行的安全性.

提前致谢

php security sql-injection

6
推荐指数
1
解决办法
1375
查看次数

C#中的大型标志枚举

嘿大家,得到一个我似乎无法找到任何关于......的快速问题

我正在开发一个需要带有大量标志(最多40-ish)的标志枚举的项目,我真的不想为每个枚举值键入精确的掩码:

public enum MyEnumeration : ulong
{
    Flag1 = 1,
    Flag2 = 2,
    Flag3 = 4,
    Flag4 = 8,
    Flag5 = 16,
    // ...
    Flag16 = 65536,
    Flag17 = 65536 * 2,
    Flag18 = 65536 * 4,
    Flag19 = 65536 * 8,
    // ...
    Flag32 = 65536 * 65536,
    Flag33 = 65536 * 65536 * 2
    // right about here I start to get really pissed off
}
Run Code Online (Sandbox Code Playgroud)

此外,我也希望有一种简单的方法可以控制不同端机器上的实际比特排列,因为这些值最终将通过网络进行序列化:

public enum MyEnumeration : uint
{
    Flag1 = 1,     // …
Run Code Online (Sandbox Code Playgroud)

c# flags enumeration endianness

16
推荐指数
3
解决办法
8601
查看次数

如何用vb打开另一个mdi子表单?

如何在主mdi父级中使用vb打开另一个mdi子表单?

vb.net mdiparent mdichild

3
推荐指数
1
解决办法
9123
查看次数

will_paginate与named_scopes

我正在使用will_paginate进行分页,到目前为止一直运行良好,除了这一件事.

例如,如果我尝试对范围进行分页

class User < ActiveRecord::Base

    named_scope :scope, lambda { etc }

end

User.scope.paginate({:page => params[:page], :per_page => 10})
Run Code Online (Sandbox Code Playgroud)

这将告诉我paginate是一个未定义的方法.我宁愿不仅仅为这个范围使用第二种解决方案,我能在这做些什么吗?

named-scope ruby-on-rails will-paginate

16
推荐指数
1
解决办法
6261
查看次数

用多态重构或类似替换条件?

我之前试过问这个问题的变种.我得到了一些有用的答案,但对我来说仍然没有任何感觉.在我看来,这不应该是一个难以破解的坚果,但我无法找到一个优雅的简单解决方案.(这是我以前的帖子,但是请首先尝试将此处所述的问题视为程序代码,以免受早期解释的影响,这些解释似乎会导致非常复杂的解决方案:成本计算器应用程序的设计模式?)

基本上,问题是为可能包含许多服务的项目创建一个计算器.在这种情况下"写作"和"分析".对于不同的服务,小时数的计算方式不同:写作是通过将"每个产品"小时数乘以产品数来计算的,项目中包含的产品越多,小时费率越低,但总数越少.小时数逐步累积(即对于中型项目,您可以采用小范围定价,然后将中等价格定价加到实际产品数量上).然而,分析它更简单,它只是每个尺寸范围的批量率.

你怎么能把它重构成一个优雅的,最好是简单的面向对象的版本(请注意,我绝不会以纯粹的程序方式这样写它,这只是为了以另一种方式简洁地显示问题).

我一直在考虑工厂,战略和装饰模式,但不能让任何工作得很好.(我在前一段时间阅读了Head First Design Patterns,并且所描述的装饰器和工厂模式都与这个问题有一些相似之处,但我很难看到它们是那里所说的好解决方案.装饰器的例子似乎非常复杂,只是添加了调味品,但也许它可以在这里工作得更好,我不知道.至少事实上,小时数的计算逐渐积累,让我想到了装饰模式......以及披萨工厂书中的工厂模式示例.好吧,它似乎只是创造了这样一个荒谬的类爆炸,至少在他们的例子中.我之前已经找到了很好的工厂模式用途,但我看不出如何在没有得到一组非常复杂的类的情况下使用它)

主要目标是只需要在一个地方(疏松耦合等)进行更改,如果我要添加一个新参数(比如另一个大小,如XSMALL,和/或其他服务,如"管理").这是程序代码示例:

public class Conditional
{
    private int _numberOfManuals;
    private string _serviceType;
    private const int SMALL = 2;
    private const int MEDIUM = 8;

    public int GetHours()
    {
        if (_numberOfManuals <= SMALL)
        {
            if (_serviceType == "writing")
                return 30 * _numberOfManuals;
            if (_serviceType == "analysis")
                return 10;
        }
        else if (_numberOfManuals <= MEDIUM)
        {
            if (_serviceType == "writing")
                return (SMALL * 30) + (20 * _numberOfManuals - SMALL);
            if (_serviceType == "analysis") …
Run Code Online (Sandbox Code Playgroud)

c# refactoring conditional design-patterns

10
推荐指数
1
解决办法
4385
查看次数

使用Sessions是不好的事情,它有什么不对吗?

我知道在社区服务器中<sessionState mode="Off" />这意味着你不能使用Sessions,几年前我记得我在一个不允许使用会话的网站上工作.
在我看来,如果我们管理如何使用正确的方法,会话是一个非常有用的工具,但是在网站中使用会话变量是不好的,当它不好时,什么时候不是?

更新
和我们可以使用什么来避免它的混乱?

asp.net session

9
推荐指数
1
解决办法
1057
查看次数