我怎样才能通过输入日期获得哪一天?
输入日期示例:15-08-2012
我怎么知道它的星期一,星期二或哪一天使用C++.
我试图从一个月的可用日期省略周末,所以如果我输入例如2012年8月,我想检查哪一天是星期六,哪一天是星期日,所以我可以从可用日期省略它对于我的节目.
我尝试获取一个月内的天数的代码:
if (month == 4 || month == 6 || month == 9 || month == 11)
{
maxDay = 30;
}
else if (month == 2)
//{
// bool isLeapYear = (year% 4 == 0 && year % 100 != 0) || (year % 400 == 0);
// if (isLeapYear)
// {
// maxDay = 29;
// }
//else
{
maxDay = 28;
}
Run Code Online (Sandbox Code Playgroud)
接下来我想知道的是那个月,哪一天是周末所以我可以从结果中省略.
我有一个功能:
void AddImage(const Image &im);
Run Code Online (Sandbox Code Playgroud)
此功能不需要修改图像,但它将图像存储为const引用,以供以后使用。因此,此功能不应允许临时使用。在没有任何预防措施的情况下,以下工作:
Image GetImage();
...
AddImage(GetImage());
Run Code Online (Sandbox Code Playgroud)
有没有办法防止此函数调用?
我试图阻止用户调整(包括最大化)X11应用程序的窗口.任何人都能指出我正确的方向吗?谷歌没有像往常那样乐于助人.谢谢!
注意:我没有使用Qt或任何其他包装器,直接使用X11调用.
请考虑以下声明:
C a, b; //C contains c1, c2 and c3 all integers
if(a.c1==b.c1 && a.c2 == b.c2) {
a.c3=b.c3;
}
Run Code Online (Sandbox Code Playgroud)
此声明是否会针对以下内容进行优化:
if(a.c1 == b.c1) {
if(a.c2 == b.c2) {
a.c3=b.c3;
}
}
Run Code Online (Sandbox Code Playgroud)
AFAIK,C++编译器不执行此类操作,因为它可能有副作用.但这些都是内置类型.
以下是否有效?或者我怎样才能接近这一点.
template<class T_> class Template {
//something
};
class Parent {
public:
Template<Parent> variable;
Parent() : variable(this) { }
};
class Derived : public Parent {
public:
Template<Derived> variable;
Derived() : Parent() { }
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
在我的JSP中,我使用的自定义标记<showDateFormat/>
如下:
Date From:<showDateFormat/>
Run Code Online (Sandbox Code Playgroud)
在我的common.js文件中
function addDateFormatInfo(){
var dateFormatHolder = document.getElementsByTagName("showDateFormat");
if ( dateFormatHolder ){
for ( i = 0 ; i < dateFormatHolder.length; i++ ){
dateFormatHolder[i].innerHTML = '<div class="infoSmall" ><span>(mm/dd/yyyy)</span></div>';
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以在我的页面中,只要有showDateFormat标签被使用,它就会显示出来(mm/dd/yyyy).它在FF中工作正常,但在IE中却没有.可能是什么问题呢?
我正在构建一个矩阵模板.有运营商,功能和所有工作正常.除非我尝试将双类型矩阵转换为int类型矩阵(反之亦然).=运算符无法定义,因此无法为类外部的basic_Matrix2D和basic_Matrix2D覆盖它.我知道我可以在class =运算符中编写来转换,但在这种情况下会有两个=运算符具有相同的参数.当使用double作为模板参数时,从double转换将与从模板参数转换相同.类定义如下,可以从SourceForge访问代码
template <class _T> class basic_Matrix2D {
}
Run Code Online (Sandbox Code Playgroud)
我还记得另一个关于模板的问题,转换为模板类型指针的工作原理,而转换为模板类型却没有.这可能是特定于编译器的.观察:
operator _T() {
return something;
}
operator _T*() {
return somethingelse;
}
Run Code Online (Sandbox Code Playgroud)
提前谢谢,
Cem
我试图比较两个函数的地址是否相等.我存储的函数的类型是已知的.这个系统通常有效,考虑下面的代码(不是从程序中写成样本):
virtual bool compare(void *fn2) {
void (*fn)(int);
if(fn==fn2)
return true;
}
Run Code Online (Sandbox Code Playgroud)
但是,当考虑类函数时,相同的方法不起作用.
virtual bool compare(void *fn2) {
void(__thiscall myclass::*fn)(int);
void *fn2;
if(fn==fn2) //error C2440 type cast: cannot convert void* to void(__thiscall...
return true;
}
Run Code Online (Sandbox Code Playgroud)
这些函数覆盖了一个公共基类的纯虚函数,类似于以下内容:
virtual bool compare(void*) = 0;
Run Code Online (Sandbox Code Playgroud)
由于我无法在虚拟函数中使用模板<>,因此我没有选择权.有没有办法(无论如何)统一类功能和常规功能?
提前谢谢,Cem
我遇到了一些奇怪的行为.我不确定这是否有效.请注意,我并不是想让它发挥作用,我更关心理论方面.我正在使用Visual C++ 2010.请注意以下代码
template <class T_>
ostream &operator <<(std::ostream &out,
typename SequenceCheckResult<T_>::directiontype const &direction) {
switch(direction) {
case SequenceCheckResult<T_>::None:
out<<"none o";
break;
case SequenceCheckResult<T_>::Horizontal:
out<<"horizontal _";
break;
case SequenceCheckResult<T_>::Vertical:
out<<"vertical |";
break;
case SequenceCheckResult<T_>::ForwardDiagonal:
out<<"forward diagonal \\";
break;
case SequenceCheckResult<T_>::BackwardDiagonal:
out<<"backward diagonal /";
break;
}
return out;
}
Run Code Online (Sandbox Code Playgroud)
显然,模板类SequenceCheckResult包含一个名为directiontype的枚举.现在上面的代码没有实例化,并且打印了变量的整数值.即使我提供专业化,它仍然无效.如果我创建以下函数,则使用它并打印文本值.请注意,上述函数的以下代码和int特化仅按template<>行和<int>后续不同operator <<.
ostream &operator << (std::ostream &out,
SequenceCheckResult<int>::directiontype const &direction) {
switch(direction) {
case SequenceCheckResult<int>::None:
out<<"none o";
break;
case SequenceCheckResult<int>::Horizontal:
out<<"horizontal _";
break;
case SequenceCheckResult<int>::Vertical:
out<<"vertical …Run Code Online (Sandbox Code Playgroud) c++ ×7
templates ×2
const ×1
enums ×1
firefox ×1
inheritance ×1
innerhtml ×1
javascript ×1
optimization ×1
reference ×1
x11 ×1