I mainly use mp3tag for processing BBC podcasts. These typically have filenames of form
prg_yyyymmdd.mp3
where 'prg' is a truncated version of the original radio programme's name, and the 'yyyymmdd' portion is the original radio programme's transmission date.
I've developed several quite complicated action lists where I typically copy the filename to other fields (eg 'Album' or 'Title') then manipulate the filename and whatever was originally in those fields, using a series of regex based replaces, to reset them to values I want.
Unfortunately for some BBC programmes the same 'prg' letters are used to represent programmes transmitted several times per week, in somewhat differing formats. For example in one program what's transmitted on a Sat/Sun reports on a particular problem, while in the following Wednesday's transmission there's a phone-in about a related matter.
At the moment I end up with both sorts of programme in the same 'Album' subfolder on my mp3 player because I cannot distinguish between the two types of podcast which both have the same 'prg' value in their filenames.
I'd like to be able to derive the transmission date's day name from the yyyymmdd value in the filename. If you could provde a function which, when given 'yyyymmdd' returned an integer in range 1-7 or 0-6 or whatever, this would be extremely useful.
You can use a converter funcion to split the filename into several tag fields, alternatively you may use an action "guess values".
Here is a converter example:
Further on you may evaluate the new tag fields to make your decisions.
As I understand .. you need a $weekday() function returning the weekday number in the format of ISO 8601 (1..7, monday..sunday) or american standard (0..6, sunday..saturday).
Such a function does not exist in Mp3tag scripting language.
I think it is not possible to calculate a weekday number by Mp3tag scripting language now.
The action group expects the tag-field TMP_ISO_DATE filled with a correct ISO date string of format "YYYY-MM-DD".
The action group creates three new tag-fields ...
TMP_ISO_DAYOW number of weekday (1..7 for Monday..Sunday)
TMP_ISO_DAYNAME_L name of weekday in long version (Monday..Sunday)
TMP_ISO_DAYNAME_S name of weekday as 3-letter abbreviation (Mon..Sun)
Begin Action Group Format DATE#Get DayOfWeek from ISO Date
Action #1 Actiontype 5: Format value Field ______: TMP_ISO_DATE Formatstring: $if2(%TMP_ISO_DATE%,'9999-12-31')
Action #2 Actiontype 7: Import tag fields (guess values) Source format __: %TMP_ISO_DATE% Guessing pattern: %TMP_ISO_YEAR%-%TMP_ISO_MONTH%-%TMP_ISO_DAY%
Action #3 Actiontype 5: Format value Field ______: TMP_ISO_YEAR Formatstring: $sub(%TMP_ISO_YEAR%,$if($less(%TMP_ISO_MONTH%,3),1,0))
Action #4 Actiontype 5: Format value Field ______: TMP_ISO_DAYOW Formatstring: $mod($add(%TMP_ISO_YEAR%,$div(%TMP_ISO_YEAR%,4),$div(%TMP_ISO_YEAR%,-100),$div(%TMP_ISO_YEAR%,400),$regexp(';0=0;1=3;2=2;3=5;4=0;5=3;6=5;7=1;8=4;9=6;10=2;11=4;','^.;'$sub(%TMP_ISO_MONTH%,1)'=(\d);.$','$1'),%TMP_ISO_DAY%),7)
Action #5 Actiontype 5: Format value Field ______: TMP_ISO_DAYOW Formatstring: $if($eql(0,%TMP_ISO_DAYOW%),7,%TMP_ISO_DAYOW%)
Action #6 Actiontype 5: Format value Field ______: TMP_ISO_DAYNAME_S Formatstring: $regexp(';0=Sun;1=Mon;2=Tue;3=Wed;4=Thu;5=Fri;6=Sat;7=Sun;','^.;'%TMP_ISO_DAYOW%'=(\w{3});.$','$1')
Action #7 Actiontype 5: Format value Field ______: TMP_ISO_DAYNAME_L Formatstring: $regexp(';0=Sunday;1=Monday;2=Tuesday;3=Wednesday;4=Thursday;5=Friday;6=Saturday;7=Su
nday;','^.;'%TMP_ISO_DAYOW%'=(\w{6,9});.$','$1')