mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-07-08 16:37:46 +02:00
2020-01-27 Fred Gleason <fredg@paravelsystems.com>
* Added a 'delta-seconds' modifier to Filepath Wildcards.
This commit is contained in:
parent
421d073b38
commit
866e85b1a7
@ -19421,3 +19421,5 @@
|
|||||||
* Switched from MM/DD/YYYY to DD MMM YYYY date formats in 'NEWS'.
|
* Switched from MM/DD/YYYY to DD MMM YYYY date formats in 'NEWS'.
|
||||||
2020-01-24 Fred Gleason <fredg@paravelsystems.com>
|
2020-01-24 Fred Gleason <fredg@paravelsystems.com>
|
||||||
* Incremented the package version to 3.2.1.
|
* Incremented the package version to 3.2.1.
|
||||||
|
2020-01-27 Fred Gleason <fredg@paravelsystems.com>
|
||||||
|
* Added a 'delta-seconds' modifier to Filepath Wildcards.
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
A date/time wildcard in Rivendell has the following form:
|
A date/time wildcard in Rivendell has the following form:
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<userinput>%<replaceable><meta-char></replaceable><replaceable><fmt-char></replaceable></userinput>
|
<userinput>%<replaceable><delta-secs></replaceable><replaceable><meta-char></replaceable><replaceable><fmt-char></replaceable></userinput>
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
where:
|
where:
|
||||||
@ -24,6 +24,16 @@
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term><userinput><replaceable><delta-secs></replaceable></userinput></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Optional. A time offset, in seconds, to apply to the base date-time
|
||||||
|
(normally, the current wall time). Default value is
|
||||||
|
<userinput>0</userinput>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><userinput><replaceable><meta-char></replaceable></userinput></term>
|
<term><userinput><replaceable><meta-char></replaceable></userinput></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
@ -534,6 +544,22 @@
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term><userinput>%86400A</userinput></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<code>saturday</code>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term><userinput>%-86400A</userinput></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<code>thursday</code>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><userinput>%a</userinput></term>
|
<term><userinput>%a</userinput></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
@ -566,6 +592,38 @@
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term><userinput>%H:%M:%S</userinput></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<code>14:34:26</code>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term><userinput>%3600H:%3600M:%3600S</userinput></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<code>15:34:26</code>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term><userinput>%1800H:%1800M:%1800S</userinput></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<code>15:04:26</code>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term><userinput>%-1800H:%-1800M:%-1800S</userinput></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<code>14:04:26</code>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><userinput>%m/%d/%Y - %H:%M:%S</userinput></term>
|
<term><userinput>%m/%d/%Y - %H:%M:%S</userinput></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// Decode Rivendell Date Macros
|
// Decode Rivendell Date Macros
|
||||||
//
|
//
|
||||||
// (C) Copyright 2002-2004,2016 Fred Gleason <fredg@paravelsystems.com>
|
// (C) Copyright 2002-2020 Fred Gleason <fredg@paravelsystems.com>
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify
|
// This program is free software; you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU General Public License version 2 as
|
// it under the terms of the GNU General Public License version 2 as
|
||||||
@ -32,17 +32,58 @@ QString RDDateDecode(QString str,const QDate &date,RDStation *station,
|
|||||||
bool initial_case=false;
|
bool initial_case=false;
|
||||||
QString field;
|
QString field;
|
||||||
int offset=0;
|
int offset=0;
|
||||||
|
int dsecs=0;
|
||||||
|
QString dsecs_str;
|
||||||
|
|
||||||
for(int i=0;i<str.length();i++) {
|
for(int i=0;i<str.length();i++) {
|
||||||
field="";
|
field="";
|
||||||
offset=0;
|
offset=0;
|
||||||
if(str.at(i)!='%') {
|
if(str.at(i)!=QChar('%')) {
|
||||||
string+=str.at(i);
|
string+=str.at(i);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
if(i>=(str.length()-1)) { // Out of characters to examine!
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Delta Seconds Modifier
|
||||||
|
//
|
||||||
|
dsecs=0;
|
||||||
|
dsecs_str="";
|
||||||
i++;
|
i++;
|
||||||
offset++;
|
offset++;
|
||||||
if(((const char *)str)[i]=='^') {
|
if((str.at(i)==QChar('+'))||(str.at(i)==QChar('-'))||
|
||||||
|
(str.at(i).category()==QChar::Number_DecimalDigit)) {
|
||||||
|
dsecs_str=str.at(i);
|
||||||
|
i++;
|
||||||
|
offset++;
|
||||||
|
while((i<str.length()-1)&&
|
||||||
|
(str.at(i).category()==QChar::Number_DecimalDigit)) {
|
||||||
|
dsecs_str+=str.at(i);
|
||||||
|
dsecs=dsecs_str.toInt();
|
||||||
|
i++;
|
||||||
|
offset++;
|
||||||
|
}
|
||||||
|
i--;
|
||||||
|
offset--;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
i--;
|
||||||
|
offset--;
|
||||||
|
}
|
||||||
|
QDate dt(date.addDays(dsecs/86400));
|
||||||
|
|
||||||
|
if(i>=(str.length()-1)) { // Out of characters to examine!
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// All Upcase Modifier
|
||||||
|
//
|
||||||
|
i++;
|
||||||
|
offset++;
|
||||||
|
if(str.at(i)==QChar('^')) {
|
||||||
upper_case=true;
|
upper_case=true;
|
||||||
i++;
|
i++;
|
||||||
offset++;
|
offset++;
|
||||||
@ -50,7 +91,11 @@ QString RDDateDecode(QString str,const QDate &date,RDStation *station,
|
|||||||
else {
|
else {
|
||||||
upper_case=false;
|
upper_case=false;
|
||||||
}
|
}
|
||||||
if(((const char *)str)[i]=='$') {
|
|
||||||
|
//
|
||||||
|
// Initial Upcase Modifier
|
||||||
|
//
|
||||||
|
if(str.at(i)==QChar('$')) {
|
||||||
initial_case=true;
|
initial_case=true;
|
||||||
i++;
|
i++;
|
||||||
offset++;
|
offset++;
|
||||||
@ -58,68 +103,72 @@ QString RDDateDecode(QString str,const QDate &date,RDStation *station,
|
|||||||
else {
|
else {
|
||||||
initial_case=false;
|
initial_case=false;
|
||||||
}
|
}
|
||||||
switch(((const char *)str)[i]) {
|
|
||||||
|
//
|
||||||
|
// Wildcard Lookup
|
||||||
|
//
|
||||||
|
switch(str.at(i).latin1()) {
|
||||||
case 'a': // Abbreviated weekday name
|
case 'a': // Abbreviated weekday name
|
||||||
field=QDate::shortDayName(date.dayOfWeek()).lower();
|
field=QDate::shortDayName(dt.dayOfWeek()).lower();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'A': // Full weekday name
|
case 'A': // Full weekday name
|
||||||
field=QDate::longDayName(date.dayOfWeek()).lower();
|
field=QDate::longDayName(dt.dayOfWeek()).lower();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'b': // Abbreviated month name
|
case 'b': // Abbreviated month name
|
||||||
case 'h':
|
case 'h':
|
||||||
field=QDate::shortMonthName(date.month()).lower();
|
field=QDate::shortMonthName(dt.month()).lower();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'B': // Full month name
|
case 'B': // Full month name
|
||||||
field=QDate::longMonthName(date.month()).lower();
|
field=QDate::longMonthName(dt.month()).lower();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'C': // Century
|
case 'C': // Century
|
||||||
field=QString().sprintf("%02d",date.year()/100);
|
field=QString().sprintf("%02d",dt.year()/100);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'd': // Day (01 - 31)
|
case 'd': // Day (01 - 31)
|
||||||
field=QString().sprintf("%02d",date.day());
|
field=QString().sprintf("%02d",dt.day());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'D': // Date (mm-dd-yy)
|
case 'D': // Date (mm-dd-yy)
|
||||||
field=date.toString("dd-MM-yy");
|
field=dt.toString("dd-MM-yy");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'e': // Day ( 1 - 31)
|
case 'e': // Day ( 1 - 31)
|
||||||
field=QString().sprintf("%2d",date.day());
|
field=QString().sprintf("%2d",dt.day());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'E': // Day (1 - 31)
|
case 'E': // Day (1 - 31)
|
||||||
field=QString().sprintf("%d",date.day());
|
field=QString().sprintf("%d",dt.day());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'F': // Date (yyyy-mm-dd)
|
case 'F': // Date (yyyy-mm-dd)
|
||||||
field=date.toString("yyyy-MM-dd");
|
field=dt.toString("yyyy-MM-dd");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'g': // Two digit year number (as per ISO 8601)
|
case 'g': // Two digit year number (as per ISO 8601)
|
||||||
date.weekNumber(&yearnum);
|
dt.weekNumber(&yearnum);
|
||||||
field=QString().sprintf("%02d",yearnum-2000);
|
field=QString().sprintf("%02d",yearnum-2000);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'G': // Four digit year number (as per ISO 8601)
|
case 'G': // Four digit year number (as per ISO 8601)
|
||||||
date.weekNumber(&yearnum);
|
dt.weekNumber(&yearnum);
|
||||||
field=QString().sprintf("%04d",yearnum);
|
field=QString().sprintf("%04d",yearnum);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'j': // Day of year
|
case 'j': // Day of year
|
||||||
field=QString().sprintf("%03d",date.dayOfYear());
|
field=QString().sprintf("%03d",dt.dayOfYear());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'l': // Unpadded Month (1 - 12)
|
case 'l': // Unpadded Month (1 - 12)
|
||||||
field=QString().sprintf("%d",date.month());
|
field=QString().sprintf("%d",dt.month());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'm': // Month (01 - 12)
|
case 'm': // Month (01 - 12)
|
||||||
field=QString().sprintf("%02d",date.month());
|
field=QString().sprintf("%02d",dt.month());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'r': // Rivendell Host Name
|
case 'r': // Rivendell Host Name
|
||||||
@ -137,16 +186,16 @@ QString RDDateDecode(QString str,const QDate &date,RDStation *station,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'u': // Day of week (numeric, 1..7, 1=Monday)
|
case 'u': // Day of week (numeric, 1..7, 1=Monday)
|
||||||
field=QString().sprintf("%d",date.dayOfWeek());
|
field=QString().sprintf("%d",dt.dayOfWeek());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'V': // Week number (as per ISO 8601)
|
case 'V': // Week number (as per ISO 8601)
|
||||||
case 'W':
|
case 'W':
|
||||||
field=QString().sprintf("%d",date.weekNumber());
|
field=QString().sprintf("%d",dt.weekNumber());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'w': // Day of week (numeric, 0..6, 0=Sunday)
|
case 'w': // Day of week (numeric, 0..6, 0=Sunday)
|
||||||
dow=date.dayOfWeek();
|
dow=dt.dayOfWeek();
|
||||||
if(dow==7) {
|
if(dow==7) {
|
||||||
dow=0;
|
dow=0;
|
||||||
}
|
}
|
||||||
@ -154,11 +203,11 @@ QString RDDateDecode(QString str,const QDate &date,RDStation *station,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'y': // Year (yy)
|
case 'y': // Year (yy)
|
||||||
field=QString().sprintf("%02d",date.year()-2000);
|
field=QString().sprintf("%02d",dt.year()-2000);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'Y': // Year (yyyy)
|
case 'Y': // Year (yyyy)
|
||||||
field=QString().sprintf("%04d",date.year());
|
field=QString().sprintf("%04d",dt.year());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '%': // Literal '%'
|
case '%': // Literal '%'
|
||||||
@ -194,17 +243,58 @@ QString RDDateTimeDecode(QString str,const QDateTime &datetime,
|
|||||||
bool initial_case=false;
|
bool initial_case=false;
|
||||||
QString field;
|
QString field;
|
||||||
int offset=0;
|
int offset=0;
|
||||||
|
int dsecs=0;
|
||||||
|
QString dsecs_str;
|
||||||
|
|
||||||
for(int i=0;i<str.length();i++) {
|
for(int i=0;i<str.length();i++) {
|
||||||
field="";
|
field="";
|
||||||
offset=0;
|
offset=0;
|
||||||
if(str.at(i)!='%') {
|
if(str.at(i)!=QChar('%')) {
|
||||||
string+=str.at(i);
|
string+=str.at(i);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
if(i>=(str.length()-1)) { // Out of characters to examine!
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Delta Seconds Modifier
|
||||||
|
//
|
||||||
|
dsecs=0;
|
||||||
|
dsecs_str="";
|
||||||
i++;
|
i++;
|
||||||
offset++;
|
offset++;
|
||||||
if(((const char *)str)[i]=='^') {
|
if((str.at(i)==QChar('+'))||(str.at(i)==QChar('-'))||
|
||||||
|
(str.at(i).category()==QChar::Number_DecimalDigit)) {
|
||||||
|
dsecs_str=str.at(i);
|
||||||
|
i++;
|
||||||
|
offset++;
|
||||||
|
while((i<str.length()-1)&&
|
||||||
|
(str.at(i).category()==QChar::Number_DecimalDigit)) {
|
||||||
|
dsecs_str+=str.at(i);
|
||||||
|
dsecs=dsecs_str.toInt();
|
||||||
|
i++;
|
||||||
|
offset++;
|
||||||
|
}
|
||||||
|
i--;
|
||||||
|
offset--;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
i--;
|
||||||
|
offset--;
|
||||||
|
}
|
||||||
|
QDateTime dt(datetime.addSecs(dsecs));
|
||||||
|
if(i>=(str.length()-1)) { // Out of characters to examine!
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// All Upcase Modifier
|
||||||
|
//
|
||||||
|
i++;
|
||||||
|
offset++;
|
||||||
|
if(str.at(i)==QChar('^')) {
|
||||||
upper_case=true;
|
upper_case=true;
|
||||||
i++;
|
i++;
|
||||||
offset++;
|
offset++;
|
||||||
@ -212,7 +302,11 @@ QString RDDateTimeDecode(QString str,const QDateTime &datetime,
|
|||||||
else {
|
else {
|
||||||
upper_case=false;
|
upper_case=false;
|
||||||
}
|
}
|
||||||
if(((const char *)str)[i]=='$') {
|
|
||||||
|
//
|
||||||
|
// Initial Upcase Modifier
|
||||||
|
//
|
||||||
|
if(str.at(i)==QChar('$')) {
|
||||||
initial_case=true;
|
initial_case=true;
|
||||||
i++;
|
i++;
|
||||||
offset++;
|
offset++;
|
||||||
@ -220,96 +314,100 @@ QString RDDateTimeDecode(QString str,const QDateTime &datetime,
|
|||||||
else {
|
else {
|
||||||
initial_case=false;
|
initial_case=false;
|
||||||
}
|
}
|
||||||
switch(((const char *)str)[i]) {
|
|
||||||
|
//
|
||||||
|
// Wildcard Lookup
|
||||||
|
//
|
||||||
|
switch(str.at(i).toLatin1()) {
|
||||||
case 'a': // Abbreviated weekday name
|
case 'a': // Abbreviated weekday name
|
||||||
field=QDate::shortDayName(datetime.date().dayOfWeek()).lower();
|
field=QDate::shortDayName(dt.date().dayOfWeek()).lower();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'A': // Full weekday name
|
case 'A': // Full weekday name
|
||||||
field=QDate::longDayName(datetime.date().dayOfWeek()).lower();
|
field=QDate::longDayName(dt.date().dayOfWeek()).lower();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'b': // Abbreviated month name
|
case 'b': // Abbreviated month name
|
||||||
case 'h':
|
case 'h':
|
||||||
field=QDate::shortMonthName(datetime.date().month()).lower();
|
field=QDate::shortMonthName(dt.date().month()).lower();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'B': // Full month name
|
case 'B': // Full month name
|
||||||
field=QDate::longMonthName(datetime.date().month()).lower();
|
field=QDate::longMonthName(dt.date().month()).lower();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'C': // Century
|
case 'C': // Century
|
||||||
field=QString().sprintf("%02d",datetime.date().year()/100);
|
field=QString().sprintf("%02d",dt.date().year()/100);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'd': // Day (01 - 31)
|
case 'd': // Day (01 - 31)
|
||||||
field=QString().sprintf("%02d",datetime.date().day());
|
field=QString().sprintf("%02d",dt.date().day());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'D': // Date (mm-dd-yy)
|
case 'D': // Date (mm-dd-yy)
|
||||||
field=datetime.date().toString("MM-dd-yy");
|
field=dt.date().toString("MM-dd-yy");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'e': // Day ( 1 - 31)
|
case 'e': // Day ( 1 - 31)
|
||||||
field=QString().sprintf("%2d",datetime.date().day());
|
field=QString().sprintf("%2d",dt.date().day());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'E': // Day (1 - 31)
|
case 'E': // Day (1 - 31)
|
||||||
field=QString().sprintf("%d",datetime.date().day());
|
field=QString().sprintf("%d",dt.date().day());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'F': // Date (yyyy-mm-dd)
|
case 'F': // Date (yyyy-mm-dd)
|
||||||
field=datetime.date().toString("yyyy-MM-dd");
|
field=dt.date().toString("yyyy-MM-dd");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'g': // Two digit year number (as per ISO 8601)
|
case 'g': // Two digit year number (as per ISO 8601)
|
||||||
datetime.date().weekNumber(&yearnum);
|
dt.date().weekNumber(&yearnum);
|
||||||
field=QString().sprintf("%02d",yearnum-2000);
|
field=QString().sprintf("%02d",yearnum-2000);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'G': // Four digit year number (as per ISO 8601)
|
case 'G': // Four digit year number (as per ISO 8601)
|
||||||
datetime.date().weekNumber(&yearnum);
|
dt.date().weekNumber(&yearnum);
|
||||||
field=QString().sprintf("%04d",yearnum);
|
field=QString().sprintf("%04d",yearnum);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'H': // Hour, zero padded, 24 hour
|
case 'H': // Hour, zero padded, 24 hour
|
||||||
field=QString().sprintf("%02d",datetime.time().hour());
|
field=QString().sprintf("%02d",dt.time().hour());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'I': // Hour, zero padded, 12 hour
|
case 'I': // Hour, zero padded, 12 hour
|
||||||
field=QString().sprintf("%02d",datetime.time().hour()%12);
|
field=QString().sprintf("%02d",dt.time().hour()%12);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'i': // Hour, space padded, 12 hour
|
case 'i': // Hour, space padded, 12 hour
|
||||||
field=QString().sprintf("%2d",datetime.time().hour()%12);
|
field=QString().sprintf("%2d",dt.time().hour()%12);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'J': // Hour, unpadded, 12 hour
|
case 'J': // Hour, unpadded, 12 hour
|
||||||
field=QString().sprintf("%d",datetime.time().hour()%12);
|
field=QString().sprintf("%d",dt.time().hour()%12);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'j': // Day of year
|
case 'j': // Day of year
|
||||||
field=QString().sprintf("%03d",datetime.date().dayOfYear());
|
field=QString().sprintf("%03d",dt.date().dayOfYear());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'k': // Hour, space padded, 24 hour
|
case 'k': // Hour, space padded, 24 hour
|
||||||
field=QString().sprintf("%2d",datetime.time().hour());
|
field=QString().sprintf("%2d",dt.time().hour());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'l': // Unpadded Month (1 - 12)
|
case 'l': // Unpadded Month (1 - 12)
|
||||||
field=QString().sprintf("%d",datetime.date().month());
|
field=QString().sprintf("%d",dt.date().month());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'M': // Minute, zero padded
|
case 'M': // Minute, zero padded
|
||||||
field=QString().sprintf("%02d",datetime.time().minute());
|
field=QString().sprintf("%02d",dt.time().minute());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'm': // Month (01 - 12)
|
case 'm': // Month (01 - 12)
|
||||||
field=QString().sprintf("%02d",datetime.date().month());
|
field=QString().sprintf("%02d",dt.date().month());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'p': // AM/PM string
|
case 'p': // AM/PM string
|
||||||
field=datetime.time().toString("ap");
|
field=dt.time().toString("ap");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'r': // Rivendell Host Name
|
case 'r': // Rivendell Host Name
|
||||||
@ -321,7 +419,7 @@ QString RDDateTimeDecode(QString str,const QDateTime &datetime,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'S': // Second (SS)
|
case 'S': // Second (SS)
|
||||||
field=QString().sprintf("%02d",datetime.time().second());
|
field=QString().sprintf("%02d",dt.time().second());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 's': // Service name
|
case 's': // Service name
|
||||||
@ -331,16 +429,16 @@ QString RDDateTimeDecode(QString str,const QDateTime &datetime,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'u': // Day of week (numeric, 1..7, 1=Monday)
|
case 'u': // Day of week (numeric, 1..7, 1=Monday)
|
||||||
field=QString().sprintf("%d",datetime.date().dayOfWeek());
|
field=QString().sprintf("%d",dt.date().dayOfWeek());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'V': // Week number (as per ISO 8601)
|
case 'V': // Week number (as per ISO 8601)
|
||||||
case 'W':
|
case 'W':
|
||||||
field=QString().sprintf("%d",datetime.date().weekNumber());
|
field=QString().sprintf("%d",dt.date().weekNumber());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'w': // Day of week (numeric, 0..6, 0=Sunday)
|
case 'w': // Day of week (numeric, 0..6, 0=Sunday)
|
||||||
dow=datetime.date().dayOfWeek();
|
dow=dt.date().dayOfWeek();
|
||||||
if(dow==7) {
|
if(dow==7) {
|
||||||
dow=0;
|
dow=0;
|
||||||
}
|
}
|
||||||
@ -348,11 +446,11 @@ QString RDDateTimeDecode(QString str,const QDateTime &datetime,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'y': // Year (yy)
|
case 'y': // Year (yy)
|
||||||
field=QString().sprintf("%02d",datetime.date().year()-2000);
|
field=QString().sprintf("%02d",dt.date().year()-2000);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'Y': // Year (yyyy)
|
case 'Y': // Year (yyyy)
|
||||||
field=QString().sprintf("%04d",datetime.date().year());
|
field=QString().sprintf("%04d",dt.date().year());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '%': // Literal '%'
|
case '%': // Literal '%'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user