Mmmmm the third case coul be this, for example:

|-------A-------------|                 |--------------A------------|
-----------------------------        --------------------------------------

   |B|                                       |-----B----|

If I directly apply (his_diff/my_diff) I think that I'm assuming that A = 2B
and it isn't the case... I need to get my range and her range and deleter
the union between them with a substraction.

range(A) - range(B)                      17000s - 13000s
---------------------------- for example: --------------------------- =
0.2352 = 23%
       range(A)                                      17000s

What do you think about? Perhaps I'm mading mistakes and can't understand
your reply. Anyway, thanks for reply :)

Bye!
Álex González

On Fri, Aug 6, 2010 at 02:09, Paulo Almeida <igcbioinformat...@gmail.com>wrote:

> In the third case, I didn't understand why you didn't divide (his_to -
> his_from) / (my_to - my_from). Bearing that in mind, this made sense in my
> head, but analyze it carefully:
>
>  def match(mf,mt,hf,ht):
>     mydiff = diff_in_seconds(mf,mt)
>     if (mf >= hf and mt <= ht) or (mf < hf and mt > ht):
>         mydiff = diff_in_seconds(mf,mt)
>         hisdiff = diff_in_seconds(hf,ht)
>         return min(1, hisdiff / mydiff)
>     else:
>         case1 = max(0, diff_in_seconds(hf, mt))
>         case2 = max(0, diff_in_seconds(mf, ht))
>         diff = min(case1, case2)
>         return (diff / mydiff)
>
> def diff_in_seconds(d1,d2):
>     timedelta = d2 - d1
>     return float(timedelta)
>
> print match(0,100,40,90)
>
>
> 2010/8/5 Alexandre González <agonzale...@gmail.com>
>
>>  I've develope a "simple" function to calculate the difference between 2
>> dates, and the time that they are interpolated.
>>
>> I need it to: I arrive to a site at a hour (my_from), I go out from the
>> site at a hour (my_to). Some friend arrive at the site at a hour (his_from)
>> and let it at a hour (his_to)
>>
>> If I stay in the site after he arrives and before he goes out, the
>> "probability" of match is 1, if I let the site after he arrives, the
>> probability of match is 0... You can see the samples in the documentation.
>>
>> I need to know if this is a good way to do, and if compare all the kinds
>> of matching (I've found 6). This is the code:
>>
>>     def time_match(self, my_from, my_to, his_from, his_to):
>>         """
>>             I've found 6 general kinds of time matching. It's better to
>> explain it with graphics:
>>
>>               (my_from)--A--(my_to)
>>             -------------------------
>>              (his_from)--B--(his_to)
>>         """
>>
>>         #    |-A-|                           |-A-|
>>         # -------------------- or --------------------
>>         #           |--B--|        |--B--|
>>         if my_to < his_from or his_to < my_from:
>>             return 0
>>
>>         #      |--A--|
>>         # --------------------
>>         #  |------B-------|
>>         elif my_from >= his_from and my_to <= his_to:
>>             return 1
>>
>>         #    |-----A-------|
>>         # --------------------
>>         #        |-B-|
>>         elif my_from < his_from and my_to > his_to:
>>             my_diff_to_reuse = diff_in_seconds(my_from, my_to)
>>             diff = my_diff_to_reuse - self.diff_in_seconds(his_from,
>> his_to)
>>
>>             return (diff / my_diff_to_reuse)
>>
>>         #   |---A---|
>>         # --------------------
>>         #       |---B---|
>>         elif my_from <= his_from and my_to <= his_to:
>>             diff = self.diff_in_seconds(his_from, my_to)
>>
>>             return (diff / self.diff_in_seconds(my_from, my_to))
>>
>>         #         |---A---|
>>         # --------------------
>>         #    |---B---|
>>         elif my_from >= his_from and my_to >= his_to:
>>             diff  = self.diff_in_seconds(my_from, his_to)
>>
>>             return (diff / self.diff_in_seconds(my_from, my_to))
>>
>>         # If I'm here I have a problem
>>         return 0
>>
>>
>>     def diff_in_seconds(date1, date2):
>>         # Initial from: http://www.bytemycode.com/snippets/snippet/304/
>>         timedelta = date2 - date1
>>         diff = timedelta.days*24*3600 + timedelta.seconds
>>
>>         return abs(float(diff))
>>
>> Thanks!
>> --
>> Please, don't send me files with extensions: .doc, .docx, .xls, .xlsx,
>> .ppt and/or .pptx
>> http://mirblu.com
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Django users" group.
>> To post to this group, send email to django-us...@googlegroups.com.
>> To unsubscribe from this group, send email to
>> django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@googlegroups.com>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/django-users?hl=en.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to django-us...@googlegroups.com.
> To unsubscribe from this group, send email to
> django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>



-- 
Please, don't send me files with extensions: .doc, .docx, .xls, .xlsx, .ppt
and/or .pptx
http://mirblu.com

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to