ugenrdage.py
by
admin
—
last modified
2007-05-25 18:07
File contents
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# File: ugenrdag.py
"""
Usage: ugenrdag.py <weeknumber in month> <weekday> <week> <year>
<weeknumber in month>: eks 2
<weekday> : 1 er mandag ugedag 1..7
<week> : 1..53
<year> : yyyy
svar på http://www.experten/spm/779990
Hvordan finder man et uge nummer for en specifik dag hver måned.
Hej allesammen
Jeg er stødt ind i et problem under udarbejdelsen af en listningen
til mit website, som jeg håber en eller anden herinde kan hjælpe mig med.
Som Eksempel:
Min listning viser uge 21,22,23,24,25,26
Nu ville jeg gerne have en markering på de uger som indeholder
den 4 tirsdag hver måned f.eks. Det vil sige at der skulle laves
en markering på uge 21 og uge 26.
Det kunne også være jeg ville have markeringen den første onsdag.
Det jeg altså gerne vil have er et stykke kode, som kan beregne
den første, anden, tredje, fjerde forkomst af en dag hver måned.
Jeg har selv siddet og rodet med dette problem et pænt stykke tid,
men har ikke kunne knække den, så jeg håber en eller anden herinde kan hjælpe.
Jeg har skrevet alt andet på siden i Jscript, men VBscript funktioner
kan jo også bruges da de kan kaldes fra Jscript.
Håber på snarlig hjælp ;) på forhånd tak.
"""
import datetime
if __name__ == "__main__":
import sys
try:
weeknumber, weekday, week, year = [ int( arg ) for arg in sys.argv[1:] ]
except:
print __doc__
sys.exit( 1 )
first_day_in_year = datetime.datetime( year, 1 ,1 )
day_in_year = 7*(week-1) + weekday - int( first_day_in_year.strftime( "%W" ) )
dato = first_day_in_year + datetime.timedelta( days=day_in_year )
day, month, year= dato.day, dato.month, dato.year
ugedag = dato.strftime( "%A" )
maaned = dato.strftime( "%B" )
if ( day / 7 + 1 ) == weeknumber :
print "this week %(week)s got %(weeknumber)s. %(ugedag)s in this month %(maaned)s" % vars()
else:
print "this week %(week)s do not contain %(weeknumber)s. %(ugedag)s in this month %(maaned)s" % vars()
Click here to get the file