示例#1
0
def get_stamp(argument, date):
    '''
    argument is a 3-tuple such as
    ('10', '14', 'A') : 1014 HRS on date
    ('10', '4', 'P') : 2204 HRS on date
    '''

    hours_24_format = int(argument[0])

    # Note:
    # 12 PM is 1200 HRS
    # 12 AM is 0000 HRS

    if argument[2] == 'P' and hours_24_format != 12:
        hours_24_format = (hours_24_format + 12) % 24

    if argument[2] == 'A' and hours_24_format == 12:
        hours_24_format = 0

    return build_event.generateIndiaTime(date.year, date.month, date.day,
                                         hours_24_format, int(argument[1]))
示例#2
0
def get_stamp(argument, date):
    '''
    argument is a 3-tuple such as
    ('10', '14', 'A') : 1014 HRS on date
    ('10', '4', 'P') : 2204 HRS on date
    '''

    hours_24_format = int(argument[0])

    # Note:
    # 12 PM is 1200 HRS
    # 12 AM is 0000 HRS

    if argument[2] == 'P' and hours_24_format != 12:
        hours_24_format = (hours_24_format + 12) % 24

    if argument[2] == 'A' and hours_24_format == 12:
        hours_24_format = 0

    return build_event.generateIndiaTime(date.year,
            date.month,
            date.day,
            hours_24_format,
            int(argument[1]))
示例#3
0
import json
import datetime
import sys
import re
from icalendar import Calendar, Event

import build_event

DEBUG = False
GENERATE_ICS = True
TIMETABLE_DICT_RE ='([0-9]{1,2}):([0-9]{1,2}):([AP])M-([0-9]{1,2}):([0-9]{1,2}):([AP])M'
timetable_dict_parser = re.compile(TIMETABLE_DICT_RE)

OUTPUT_FILENAME = "timetable.ics"

UNTIL = build_event.generateIndiaTime(2017, 11, 30, 23, 59)

cal = Calendar()
cal.add('prodid', '-//Your Timetable generated by GYFT//mxm.dk//')
cal.add('version', '1.0')

def next_weekday(d, weekday):
    days_ahead = weekday - d.weekday()
    if days_ahead <= 0: # Target day already happened this week
        days_ahead += 7
    return d + datetime.timedelta(days_ahead)

def get_stamp(argument, date):
    '''
    argument is a 3-tuple such as
    ('10', '14', 'A') : 1014 HRS on date
示例#4
0
from __future__ import print_function

import build_event
import datetime
import pytz
import sys

# SEM_BEGIN=datetime.datetime.now(pytz.timezone('Asia/Kolkata'))
SEM_BEGIN = build_event.generateIndiaTime(2020, 1, 2, 0, 0)
MID_TERM_BEGIN = build_event.generateIndiaTime(2020, 2, 17, 0, 0)
MID_TERM_END = build_event.generateIndiaTime(2020, 2, 25, 23, 59)
END_TERM_BEGIN = build_event.generateIndiaTime(2020, 4, 20, 0, 0)

# Recurrence strings from above dates
GYFT_RECUR_STRS = [[
    'RRULE:FREQ=WEEKLY;UNTIL={}'.format(
        END_TERM_BEGIN.strftime('%Y%m%dT000000Z'))
],
                   [
                       'RRULE:FREQ=WEEKLY;UNTIL={}'.format(
                           MID_TERM_BEGIN.strftime('%Y%m%dT000000Z'))
                   ],
                   [
                       'RRULE:FREQ=WEEKLY;UNTIL={}'.format(
                           END_TERM_BEGIN.strftime('%Y%m%dT070000Z'))
                   ],
                   [
                       'RRULE:FREQ=WEEKLY;UNTIL={}'.format(
                           MID_TERM_BEGIN.strftime('%Y%m%dT080000Z'))
                   ]]
示例#5
0
from __future__ import print_function

import build_event
import datetime
import pytz
import sys

# SEM_BEGIN=datetime.datetime.now(pytz.timezone('Asia/Kolkata'))
SEM_BEGIN = build_event.generateIndiaTime(2019, 7, 15, 0, 0)

MID_TERM_BEGIN = build_event.generateIndiaTime(2019, 9, 16, 0, 0)

MID_TERM_END = build_event.generateIndiaTime(2019, 9, 24, 23, 59)

END_TERM_BEGIN = build_event.generateIndiaTime(2019, 11, 18, 0, 0)

## Sanity check

sanity = [
    SEM_BEGIN < MID_TERM_BEGIN, MID_TERM_BEGIN < MID_TERM_END,
    MID_TERM_END < END_TERM_BEGIN
]

# check if anything is False
sanity_check = [item for item in sanity if not item]

if len(sanity_check) > 0:
    print("Check the dates you have entered")
    print("Note: SEM_BEGIN < MID_TERM_BEGIN < MID_TERM_END < END_TERM_BEGIN")
    sys.exit(1)
'''
示例#6
0
文件: dates.py 项目: xypnox/gyft2
from __future__ import print_function

import build_event

# import datetime
# import pytz
# SEM_BEGIN = datetime.datetime.now(pytz.timezone('Asia/Kolkata'))
# SEM BEGIN, and MID_TERM_BEGIN are one day before due to weird calculations
SEM_BEGIN = build_event.generateIndiaTime(2022, 1, 4, 0, 0)
MID_TERM_BEGIN = build_event.generateIndiaTime(2022, 2, 21, 0, 0)
MID_TERM_END = build_event.generateIndiaTime(2022, 2, 25, 23, 59)
END_TERM_BEGIN = build_event.generateIndiaTime(2022, 4, 7, 0, 0)

# Sanity check

sanity = [
    SEM_BEGIN < MID_TERM_BEGIN,
    MID_TERM_BEGIN < MID_TERM_END,
    MID_TERM_END < END_TERM_BEGIN,
]

# check if anything is False
sanity_check = [item for item in sanity if not item]

if len(sanity_check) > 0:
    print("Check the dates you have entered")
    print("Note: SEM_BEGIN < MID_TERM_BEGIN < MID_TERM_END < END_TERM_BEGIN")
    import os

    os._exit(1)
示例#7
0
from __future__ import print_function

import build_event
import datetime
import pytz

SEM_BEGIN = datetime.datetime.now(pytz.timezone('Asia/Kolkata'))
#  SEM_BEGIN=build_event.generateIndiaTime(2017, 7, 16, 0, 0)

MID_TERM_BEGIN = build_event.generateIndiaTime(2018, 2, 19, 0, 0)

MID_TERM_END = build_event.generateIndiaTime(2018, 2, 27, 23, 59)

END_TERM_BEGIN = build_event.generateIndiaTime(2018, 4, 19, 0, 0)

## Sanity check

sanity = [
    SEM_BEGIN < MID_TERM_BEGIN, MID_TERM_BEGIN < MID_TERM_END,
    MID_TERM_END < END_TERM_BEGIN
]

# check if anything is False
sanity_check = [item for item in sanity if not item]

if len(sanity_check) > 0:
    print("Check the dates you have entered")
    print("Note: SEM_BEGIN < MID_TERM_BEGIN < MID_TERM_END < END_TERM_BEGIN")
'''
Returns a list of lists denoting the time periods of working days
'''
示例#8
0
from __future__ import print_function

import build_event
import datetime
import pytz
import sys

# SEM_BEGIN=datetime.datetime.now(pytz.timezone('Asia/Kolkata'))
SEM_BEGIN=build_event.generateIndiaTime(2018, 7, 17, 0, 0)

MID_TERM_BEGIN=build_event.generateIndiaTime(2018, 9, 17, 0, 0)

MID_TERM_END=build_event.generateIndiaTime(2018, 9, 26, 23, 59)

END_TERM_BEGIN=build_event.generateIndiaTime(2018, 11, 16, 0, 0)

## Sanity check

sanity = [
            SEM_BEGIN < MID_TERM_BEGIN,
            MID_TERM_BEGIN < MID_TERM_END,
            MID_TERM_END < END_TERM_BEGIN
         ]

# check if anything is False
sanity_check = [item for item in sanity if not item]

if len(sanity_check) > 0:
    print("Check the dates you have entered")
    print("Note: SEM_BEGIN < MID_TERM_BEGIN < MID_TERM_END < END_TERM_BEGIN")
    sys.exit(1)
示例#9
0
from __future__ import print_function

import build_event
import datetime
import pytz

# SEM_BEGIN=datetime.datetime.now(pytz.timezone('Asia/Kolkata'))
SEM_BEGIN = build_event.generateIndiaTime(2021, 1, 4, 0, 0)

MID_TERM_BEGIN = build_event.generateIndiaTime(2021, 2, 27, 0, 0)

MID_TERM_END = build_event.generateIndiaTime(2021, 3, 3, 23, 59)

END_TERM_BEGIN = build_event.generateIndiaTime(2021, 4, 14, 0, 0)

## Sanity check

sanity = [
    SEM_BEGIN < MID_TERM_BEGIN, MID_TERM_BEGIN < MID_TERM_END,
    MID_TERM_END < END_TERM_BEGIN
]

# check if anything is False
sanity_check = [item for item in sanity if not item]

if len(sanity_check) > 0:
    print("Check the dates you have entered")
    print("Note: SEM_BEGIN < MID_TERM_BEGIN < MID_TERM_END < END_TERM_BEGIN")
'''
Returns a list of lists denoting the time periods of working days
'''
示例#10
0
文件: dates.py 项目: ooyeraju/gyft
from __future__ import print_function

import build_event
import datetime
import pytz
import sys

# SEM_BEGIN=datetime.datetime.now(pytz.timezone('Asia/Kolkata'))
SEM_BEGIN = build_event.generateIndiaTime(2020, 9, 1, 0, 0)
MID_TERM_BEGIN = build_event.generateIndiaTime(2020, 10, 23, 0, 0)
MID_TERM_END = build_event.generateIndiaTime(2020, 10, 27, 23, 59)
END_TERM_BEGIN = build_event.generateIndiaTime(2020, 11, 26, 0, 0)

# Recurrence strings from above dates
GYFT_RECUR_STRS = [['RRULE:FREQ=WEEKLY;UNTIL={}'.format(END_TERM_BEGIN.strftime('%Y%m%dT000000Z'))],
                    ['RRULE:FREQ=WEEKLY;UNTIL={}'.format(MID_TERM_BEGIN.strftime('%Y%m%dT000000Z'))],
                    ['RRULE:FREQ=WEEKLY;UNTIL={}'.format(END_TERM_BEGIN.strftime('%Y%m%dT070000Z'))],
                    ['RRULE:FREQ=WEEKLY;UNTIL={}'.format(MID_TERM_BEGIN.strftime('%Y%m%dT080000Z'))]]

## Sanity check

sanity = [
            SEM_BEGIN < MID_TERM_BEGIN,
            MID_TERM_BEGIN < MID_TERM_END,
            MID_TERM_END < END_TERM_BEGIN
         ]

# check if anything is False
sanity_check = [item for item in sanity if not item]

if len(sanity_check) > 0:
示例#11
0
文件: dates.py 项目: metakgp/gyft
from __future__ import print_function

import build_event
import datetime
import pytz
import sys

# SEM_BEGIN=datetime.datetime.now(pytz.timezone('Asia/Kolkata'))
SEM_BEGIN = build_event.generateIndiaTime(2019, 1, 1, 0, 0)

MID_TERM_BEGIN = build_event.generateIndiaTime(2019, 2, 17, 0, 0)

MID_TERM_END = build_event.generateIndiaTime(2019, 2, 26, 23, 59)

END_TERM_BEGIN = build_event.generateIndiaTime(2019, 4, 21, 0, 0)

## Sanity check

sanity = [
            SEM_BEGIN < MID_TERM_BEGIN,
            MID_TERM_BEGIN < MID_TERM_END,
            MID_TERM_END < END_TERM_BEGIN
         ]

# check if anything is False
sanity_check = [item for item in sanity if not item]

if len(sanity_check) > 0:
    print("Check the dates you have entered")
    print("Note: SEM_BEGIN < MID_TERM_BEGIN < MID_TERM_END < END_TERM_BEGIN")
    sys.exit(1)
示例#12
0
文件: dates.py 项目: Diptanshu8/gyft
from __future__ import print_function

import build_event
import datetime
import pytz

SEM_BEGIN = datetime.datetime.now(pytz.timezone('Asia/Kolkata'))
#  SEM_BEGIN=build_event.generateIndiaTime(2017, 7, 16, 0, 0)

MID_TERM_BEGIN = build_event.generateIndiaTime(2017, 9, 15, 0, 0)

MID_TERM_END = build_event.generateIndiaTime(2017, 9, 25, 23, 59)

END_TERM_BEGIN = build_event.generateIndiaTime(2017, 11, 20, 23, 59)

## Sanity check

sanity = [
    SEM_BEGIN < MID_TERM_BEGIN, MID_TERM_BEGIN < MID_TERM_END,
    MID_TERM_END < END_TERM_BEGIN
]

# check if anything is False
sanity_check = [item for item in sanity if not item]

if len(sanity_check) > 0:
    print("Check the dates you have entered")
    print("Note: SEM_BEGIN < MID_TERM_BEGIN < MID_TERM_END < END_TERM_BEGIN")
    import os
    os.exit(1)
'''
示例#13
0
文件: dates.py 项目: meherc99/gyft
from __future__ import print_function

import build_event
import datetime
import pytz
import sys

# SEM_BEGIN=datetime.datetime.now(pytz.timezone('Asia/Kolkata'))
SEM_BEGIN = build_event.generateIndiaTime(2019, 1, 1, 0, 0)

MID_TERM_BEGIN = build_event.generateIndiaTime(2019, 2, 17, 0, 0)

MID_TERM_END = build_event.generateIndiaTime(2019, 2, 26, 23, 59)

END_TERM_BEGIN = build_event.generateIndiaTime(2019, 4, 21, 0, 0)

## Sanity check

sanity = [
    SEM_BEGIN < MID_TERM_BEGIN, MID_TERM_BEGIN < MID_TERM_END,
    MID_TERM_END < END_TERM_BEGIN
]

# check if anything is False
sanity_check = [item for item in sanity if not item]

if len(sanity_check) > 0:
    print("Check the dates you have entered")
    print("Note: SEM_BEGIN < MID_TERM_BEGIN < MID_TERM_END < END_TERM_BEGIN")
    sys.exit(1)
'''