大会员没什么影响啊,但是看有些人好像别人都欠她似的不了解去广告

一个简单的类来处理日期_日期和时间_编程通用_或代码
| 文章 >> 编程通用 >> 日期和时间
一个简单的类来处理日期
{A0}{A}用来开发这个类的所有算法可以找到 和类
在项目中使用的类,您将需要以下文件: SimpleDate.cpp:包含日期类函数SimpleDate.h:头上面的类Parseit.cpp:辅助类,解析日期字符串Parseit.h:头上面的类在编写业务应用之一是被迫处理多种形式的日期。一个简单的轻量级的类处理日期是不是MFC或在WIN API的一部分。有类可以做到这一点,但在成本和复杂性,是真的不在大多数情况下需要。我一般需要:易于使用。
能够方便地存储结构中的日期,
数据库,平面文件等。
能够做简单的数学使用,如添加日期
或减去任意数量的月,日,年给定的日期。
2和4位年处理能力(在
处理不同的日期格式。
日期上执行逻辑比较的能力
没有太多的麻烦。 &#16
0;能够处理用户输入和应用的格式和
使用标准的MFC架构的有效性检查。
我提到易于使用?我终于研制成功是一类我称之为CSimpleDate。我认为,它符合或超过所有上述。 所有的数学函数返回一个自我参照,使他们可以作为分配右值使用。内部存储的日期为Julian日期。长有一个运营商,将返回这个值允许CSimpleDate是右值或分配也比较。日期可以存储在文件中,数据库,或者作为一个文本字符串(人类可读),或作为一项长期的结构。作为一项长期存储的日期是非常易于使用索引或作出迅速的日期比较,但不被人类的平均读取。任你选。由于我使用的计算,我认为的准确性可能是一个小关闭投影时,整数运算远在过去或未来日期。我将离开这个有算法爱好者来确定。使用范例无效CYourClass:东西(){
CSimpleDate Date1的; / /默认构造函数将在今天的日期CSimpleDate Date2的("; 12/07/1941quot";); / /设置该日期CString的S =(LPCSTR)Date2的; / / s将 12/07/1941S = Date2.GetFullDateString ();// S ="07年12月1941 S = Date2.GetFullDateStringLong ();// S ="星期日十二月071941 (Date2的="12/09/1940)DoThis()其他DoThat();如果(LT; D​​ate1的Date2的)S ="更好;其他S ="我们得到了T;Date2的"; 02/29/2000quot"; / /复制1型Date2.AddYear(1)/ / Date2的现在等于 02/28/2001Date2的日期; / /复制2型日期= Date2.AddDays(1234)/ /日期和Date2都等于现在看到的源代码长D1 =(长)日期; / /这些功能是等价的长D2 = Date2.GeyJulianDate();}也有可以理解类的DDX函数。他们以及执行格式化日期验证。无效CMainView:的DoDataExchange(CDataExchange * PDX){的CFormView::DoDataExchange中(PDX);/ / {{AFX_DATA_MAP(CMainView)DDX_SimpleDate(PDX,IDC_THEDATE,m_TheDateString); / /字符串或为cstringDDX_SimpleDate(PDX,IDC_THEDATE2,m_TheDataLong); / /长DDX_Text(PDX,IDC_RESULTS,m_R1);/ /}} AFX_DATA_MAP}是内置类的时间函数的基础上。只是很基本的,我已经实现时间的功能,因为我已经很很少需要。详情请参阅源代码是一个小的演示程序,显示类使用,也是一个文件包含类和参考文本。
目录表CSimpleDate(INT FormatType = MMDDYYYY);CSimpleDate(LPCSTR DateString,INT FormatType = MMDDYYYY);CSimpleDate(JD长,INT FormatType = MMDDYYYY);虚拟〜CSimpleDate();常量CSimpleD AddDays(INT天);常量CSimpleD AddYears(INT岁);常量CSimpleD AddMonths(星期一);常量CSimpleD SubtractYears(INT岁);常量CSimpleD SubtractDays(INT天);常量CSimpleD SubtractMonths(星期一);虚拟INT YearsOld();LPCSTR GetFullDateString();LPCSTR GetFullDateStringLong();虚拟INT GetDayOfWeek();虚拟BOOL的IsValid();长GetJulianDate();虚拟INT GetDay()虚拟INT GetMonth()虚拟INT GetYear()虚拟无效GetIntegerDate( M,D,intamp,Y)虚拟INT GetHour()虚拟INT GetMin()虚拟(INT GetSeconds)虚拟无效GetTimeString(CS,布尔AMPM = TRUE);虚拟无效GetTimeString(LPSTR S,INT nLen,布尔&#
160; AMPM = TRUE);虚拟无效GetTimeStringShort(CS,布尔&
#160; AMPM = TRUE);虚拟无效GetTimeStringShort(LPSTR S,INT nLen,布尔
AMPM = TRUE);运营商LPCSTR();经营者长期();常量CSimpleDateamp运算符=(const的CSimpleD日期);常量CSimpleD运算符=(LPCSTR日期);布尔运算符GT;(常量CSimpleD日期);布尔操作符<(const的CSimpleD日期);布尔运算符GT =(const的CSimpleD日期);布尔操作符<=(const的CSimpleD日期);布尔操作符==(const的CSimpleD日期);布尔运算符=(常量CSimpleD日期);布尔运算符GT;(LPCSTR日期);布尔运算符LT;(LPCSTR日期);布尔运算符GT =(LPCSTR日期);布尔操作符<=(LPCSTR日期);布尔运算符==(LPCSTR日期);布尔运算符=(LPCSTR日期);虚拟BOOL SetToday();
虚拟布尔CSimpleDate:ParseDateString(LPCSTR,米, D,intamp,Y);虚拟BOOL ParseDateString(LPCSTR);虚拟长期ConvertToJulian(INT一个月,一天INT,INT年);虚拟长ConvertToJulian();虚拟无效ConvertFromJulian(月,日,intamp,年份);虚拟无效ConvertFromJulian();虚拟无效AdjustDays();虚拟无效SetTime();静态布尔VerifyDateFormat(LPCSTR日期);静态布尔FixDateFormat(CString的放大器;日期);静态布尔FixDateFormat(LPSTR日期);无效DDX_SimpleDate(CDataExchange * PDX,INT NID,LPSTR STR,INT nLen);无效DDX_SimpleDate(CDataExchange * PDX,INT NID,CS STR);无效DDX_SimpleDate(CDataExchange * PDX,INT NID, jdate);构造函数有三个构造。第一招: CSimpleDate(INT FormatType = MMDDYYYY) initilize的对象为今天的日期。这是默认的构造函数使用范例:CSimpleDate D,或CSimpleDate D(MMDDYY); 第二个: CSimpleDate(LPCSTR DateString,INT FormatType = MMDDYYYY);
需要一个字符串或一个C&#8203;&#8203;String包含格式正确的日期第一个参数。可选的格式类型,第二个参数使用范例:CSimpleDate("日");或CSimpleDate("99年12月7日",MMDDYY); 一个警告;日期的内部表示,作为一个4位数的一年无论是maintaied是什么格式的效果。格式只影响输出。 第三个: CSimpleDate(JD长,INT FormatType = MMDDYYYY);
需要很长的整数,代表作为一个参数和可选的格式类型。
const CSimpleDate& AddDays(int Days);
const CSimpleDate& AddYears(int Yrs);
const CSimpleDate& AddMonths(int Mon);
const CSimpleDate& SubtractYears(int Yrs);
const CSimpleDate& SubtractDays(int Days);
const CSimpleDate& SubtractMonths(int Mon);
virtual int YearsOld();
这些例程言自明。他们将一个现有的CSimpleDate对象,执行请求的操作就可以了。随着YearsOld异常()他们都返回一个引用自我,让他们在一个表达式的右侧。对于例如看看下面的几行代码。 {C}拷贝构造函数被调用,并可以以这种方式分配。
YearsOld()返回一个CSimpleDate值之间的整年数今天的日期。今天的日期是当前系统日期。有没有负面的返回0将返回最小值。如果CSimpleDate对象是无效的,或者如果它中包含大于今天的日期0日期将被退回。
类访问函数LPCSTR GetFullDateString() 返回一个字符串,包含在"12月7 1941" 格式的日期LPCSTR GetFullDateStringLong() 返回一个字符串,其中包含在"星期日12月7日1941年" 格式的日期INT GetDayOfWeek() 返回整数,表示星期的星期日= 1 Moday = 2等;
BOOL的IsValid() 返回TRUE,如果CSimpleDate对象conatins一个需持有效日期,否则返回
长GetJulianDate() 返回一个长整型,代表此CSimpeDate对象的Julian日期数量公历日期 INT GetDay()INT GetMonth()INT GetYear()
无效GetIntegerDate( M,D,intamp,Y) 这些都返回整数,代表请求的对象举行的内部值 INT GetHour()INT GetMin()INT GetSeconds() 这些都返回整数代表请求的对象举行的内部值。GetHour函数返回24小时制的基础上,未作调整上午下午 无效GetTimeString(CS,布尔AMPM = TRUE); 无效GetTimeString(LPSTR S,INT nLen,BOOL AMPM = TRUE);
返回一个字符串,表示当前系统时间。调整为12小时部分小时制。如果是真的AMPM(默认值)将被附加到字符串的AM或PM。 "将返回的字符串格式"下午九时45分55秒" 无效GetTimeStringShort(CS,布尔AMPM = TRUE); 无效GetTimeStringShort(LPSTR S,INT nLen,BOOL AMPM = TRUE);
返回一个字符串,表示当前系统时间。调整为12小时部分小时制。如果是真的AMPM(默认值)将被附加到字符串的AM或PM。 "返回的字符串将在"下午9:45"格式运营商和比较函数运营商LPCSTR()返回的CSimpledate对象的字符串表示形式。这也使将要兴建的CSimpleDateCSimpleDate作为一个参数。
CSimpleDate Date(&12/09/1946&);
CString s=(LPCSTR)D
CSimpleDate S2(Date);
VERIFY(s==&12/09/1946&);
操作符长()返回此CSimpleDate对象代表Julian日期号长
CSimpleDate Date(&12/09/1946&);
long s=(long)D
VERIFY(s==Date.GetJulianDate());
常量CSimpleD运算符=(const的CSimpleD日期); 常量CSimpleD运算符=(LPCSTR日期); 拷贝构造函数的基本的东西没有什么花哨的
BOOL operator &
(const CSimpleDate& Date);
BOOL operator &
(const CSimpleDate& Date);
BOOL operator & = (const CSimpleDate& Date);
BOOL operator & = (const CSimpleDate& Date);
BOOL operator == (const CSimpleDate& Date);
BOOL operator != (const CSimpleDate& Date);
BOOL operator &
(LPCSTR Date);
BOOL operator &
(LPCSTR Date);
BOOL operator & = (LPCSTR Date);
BOOL operator & = (LPCSTR Date);
BOOL operator == (LPCSTR Date);
BOOL operator != (LPCSTR Date);
这些都是超载的平等经营者和在正常的方式使用。他们可以应用之间的CSimpleDate对象和/或日期字符串表示形式(右值只有)。例如:
CSimpleDate Date(&12/09/1998&);
CSimpeDate Date2;
if ( Date2 &
else if(Date &
&12/12/1998&)
ForGetIt();
内部保护功能
BOOL SetToday();
BOOL CSimpleDate::ParseDateString(LPCSTR,int& m,int& d,int& y);
BOOL ParseDateString(LPCSTR);
long ConvertToJulian( int month,int day,int year);
long ConvertToJulian();
void ConvertFromJulian(int& Month,int& Day,int& Year);
void ConvertFromJulian();
void AdjustDays();
void SetTime();
这些都是用于设置和维护类的数据。所有的功能都虚拟,使他们能够在继承类中被重写。该名称是相当explanatory.Please检查源代码每个成员。功能静态函数BOOL VerifyDateFormat(LPCSTR日期);
通过一个日期字符串表示形式,即"90年12月1日"或"日"将确定的日期是类可以识别的方式,正确的和格式化。无效的日期I.E"日"将也将陷入。返回true如果确定否则返回false
布尔FixDateFormat(CString的放大器;日期); BOOL FixDateFormat(LPSTR日期);
这对函数将尝试一个格式化的字符串格式。一个未格式化的字符串是一个包含"121290"或"",如无日期seperators。如果成功的字符串将被格式化检查的有效性。 LPSTR版本假定该字符串是足够长的时间举行格式化的日期。 非会员功能
DDX_SimpleDate(CDataExchange *pDX,int nID,LPSTR str,int nLen);
DDX_SimpleDate(CDataExchange *pDX,int nID,CString& str);
DDX_SimpleDate(CDataExchange *pDX,int nID,long& jdate);
这些数据交换功能,可用于输入和显示CSimpleDate类型日期。 ",只需要保存,并从一个数据库或数据文件数据的字符串表示日期或Julian日期编号。通过保存的Julian日期数字的简单comparisions可迅速之间的日期字段即比小于等于更大。这些功能还提供错误检查以保证输入一个有效的日期。它们是使用MFC提供的DDX_&#8203;&#8203;xxx功能完全一样。例如:
void CMainView::DoDataExchange(CDataExchange* pDX)
CFormView::DoDataExchange(pDX);
DDX_SimpleDate(pDX, IDC_THEDATE, m_TheDate);
DDX_SimpleDate(pDX, IDC_THEDATE2, m_Date2);
DDX_Text(pDX, IDC_RESULTS, m_R1);
|理查德斯特林格
关于作者:
中国我是一名编程爱好者,谢谢为我们提供一个学习和分享的平台。有什么问题。可以就本内容回复,我看到时。会尽量回复的。
评论会员:
时间:您好,我已经包括Parseit.h,SimpleDate.hSimpleDate.cppparseit.cpp,在控制台VC工程。但我相信建成后300错误的解决方案和所有的错误在于这些文件。我应该改变项目的一些属性。请让我知道所有这些错误的原因沙美娜沙美娜 npetrov评论会员:
时间:一个有点过于复杂,特别是对经营者,但总体来说非常有用一般的日期除了substraction/验证码。注意:它似乎从代码,没有经营者检查时间-只为日期 GhostEx评论会员:
时间:"运行时检查失败#2-围绕变量"time_val"堆栈被破坏"后,我编译和执行与VS.net2005年,一个消息演示跳了出来。和演示采空SimpleDate.cpp线740。这是一个错误? msatur9评论会员:
时间:此代码肯定将无法编译在任何Unicode的实现,更不要说多余的使用STRCMP和strcpy,如废弃的功能,这将很可能编译失败。我认为做重写整个代码VS2k5符合,但我只需要一个或两个职能很多,我只是偷的代码,并修改它。 mattfaramir33评论会员:
时间:这是通过添加以下行到您的stdafx.h文件固定#定义_USE_32BIT_TIME_T堆栈错误的原因是,VS2005中使用的32位,64位time_t的声明,而不是这导致堆栈损坏。希望这会有所帮助。马特尼古拉斯Wourms评论会员:
时间:我在VS2003.NET一个新的Windows应用程序(Windows控制台)项目创建。我创建了一个main.cpp的:INT(){返回0;}我也注释掉除了整个parseit.cpp:CParseIt:CParseIt(布尔地带){STRCPY(分离器,",");{BR}StripQuotes=地带;NumFields=0;TheData=NULL;}但是,当我编译的,我得到87错误:parseit.h:错误C2833:"运营商LPCSTR"是不认可的运营商或类型parseit.h:错误C2059:语法错误:"换行"parseit.h:错误C2061:语法错误:标识符&#39;LPCSTR&#39;等等等等...演示类编译罚款,没有任何问题。你到底我做错了这里?项目设置错了?错误*一些* KellyCoinGuy评论会员:
时间:此错误意味着parseit.h是被列入前windefs.h。首先,确保stdafx.h中包含WINDOWS.H。然后,请检查您的cpp文件,以确保stdafx.h中包括前parseit.h。埃内斯托佩拉莱斯索托评论会员:
时间:只是想你会感兴趣,分离器分离应拼写...凯利 bbwlam评论会员:
时间:头文件"simpledate.h"是包括前另一个头文件中声明一个std::地图,地图的编制为失败语法错误:标识符"_Wherenode&#39;我追查这回ParseIt.h,下面的定义:的#ifdef_DEBUG#定义新的DEBUG_NEW#ENDIF这个定义被删除时,再次编译好。Adiós!imgsrc=/upimg/_02_10_54_3.jpg Franklin5775评论会员:
时间:imgsrc=/upimg/_02_10_54_0.jpgimgsrc=/upimg/_02_10_54_0.jpg我试过我的代码集成到你的类,但它会抱怨当我尝试编译它。是否有任何特殊设置/我需要添加/定义的库?Parseit.h(91):错误C2146:语法错误:缺少";"前标识符"TheFields&#39;Parseit.h(91):错误C2501:"CPtrArray":缺少存储类或类型说明Parseit.h(91):错误C2501:"TheFields":缺少存储类或类型说明符SimpleDate.h(132):错误C2065:&#39;CDataExchange":未声明的标识符SimpleDate.h(132):错误C2065:&#39;PDX":未声明的标识符SimpleDate.h(132):错误C2062:类型"int"的意外SimpleDate.h(133):错误C2062:类型"int"的意外SimpleDate.h(134):错误C2062:类型"int"的意外注释掉无效DDX_SimpleDate(CDataExchange*PDX,INTNID,LPSTRSTR,INTnLen);和摆脱SimpleDate的错误..我想这是好的评论?但我不能骑的Parseit.h错误。我不能recongiseCPtrArray....{BR}顺便说一句,我可以编译和运行示例应用程序。,陈智思imgsrc=/upimg/_02_10_54_2.jpg jcsston评论会员:
时间:我寻找这个代码很长一段时间,功能,是真正有用的的是天数的加法和减法。理查德斯特林格评论会员:
时间:?源代码许可下这段代码我自己在改变类的工作与STL:载体和我自己的跨平台imgsrc=/upimg/_02_10_54_0.jpgString类。许可证,我在我的代码在GNUGPL。 jcsston评论会员:
时间:这烃源代码下"偷许可"imgsrc=/upimg/_02_10_54_0.jpg,我的意思是,你可以做你想要与它的是-给我的信用卡或不-只是有乐趣。我唯一会问,如果发现任何错误报告,所以我们可以得到它固定。斯特林格理查德ISS软件得克萨斯州达拉斯在意大利三十年下Borgias他们战争,恐怖活动,谋杀和流血但他们生产的米开朗基罗,莱昂纳多达芬奇和文艺复兴时期。在瑞士,他们兄弟之情;,他们有五个一百多年民主与和平的什么产生?布谷鸟钟。奥森威尔斯 pwyzorski评论会员:
时间:imgsrc=/upimg/_02_10_54_0.jpg一旦我已确保它能够正常工作,我将发布一个改性"MFC"来源链接。我有一个问题,我怎么能得到大纪元日期?感谢伟大的代码imgsrc=/upimg/_02_10_54_0.jpg jcsston评论会员:
时间:我真的很好奇,如果这一个MFC实现港口不断得到完成。我真的可以使用现在的至于,&#12316;P kc5zrs评论会员:
时间:我发现我并不需要使用它毕竟。我曾与次交易以上日期。但是,这里是一个MFC的版本。这取决于我自己的字符串类,JString因为性病::字符串没有任何格式化功能你可以在这里获得/c/DateClass--JString.zip您需要访问/或类似的东西,所以正确的引荐发送(三脚架不喜欢直接的联系)。 skyfree评论会员:
时间:在下面的代码片断,布尔CSimpleDate:ParseDateString(LPCSTR的日期,INT米,INTD,诠释y){CParseItParseIt(日期,"/.-");ParseIt.Parse()诠释一,二,三;&#160;}第二行的号召ParseIt.Parse()函数看起来我是多余的,因为CParseIt对象的构造函数中调用parse()函数是由在第一线。有我丢失的东西吗?只是检查,看看我是否正确地理解代码...谢谢!RDS理查德斯特林格评论会员:
时间:当前实现不处理使用只有2年的数字("歪歪")后,2000年数位&#8203;&#8203;格式的日期。我提出以下的修正,这将导致任何一年的50在上个世纪。例如,"51年9月3日"将被解释为"日"和"50年9月3日"将"日"。布尔CSimpleDate:ParseDateString(LPCSTR的日期,INT米,INTD,诠释y){CParseItParseIt(日期,"/.-");ParseIt.Parse()诠释一,二,三;=两=三=0;INT&#241;=ParseIt.GetNumFields()之一=(INT)ParseIt.GetField(1);(N1时)两个=(INT)ParseIt.GetField(2);(N2)三个=(INT)ParseIt.GetField(3);开关(m_Format){MMDDYY:M=之一;D=二,Y=三;(Y50)Y=1900;(Y=50)Y=2000打破;DDMMYY:&#240;=M=两个Y=三;(Y50)Y=1900;(Y=50)Y=2000打破;YYMMDD:Y=之一;M=两个D=三;(Y50)Y=1900;(Y=50)Y=2000打破;MMDDYYYY:M=之一;D=二,Y=三;(Y50)Y=1900;(Y=50)Y=2000打破;DDMMYYYY:&#240;=M=两个Y=三;(Y50)Y=1900;(Y=50)Y=2000打破;YYYYMMDD:Y=之一;M=两个D=三;(Y50)Y=1900;(Y99(m_Year99(m_Year99(m_Year2000m_Year-1900:m_Year-2000):??m_Yearm_Month,m_Day);返回(LPCSTR)m_DateSMMDDYYYY:m_DateString.Format("D/D/D??",m_Month,m_Day,m_Year);返回(LPCSTR)m_DateSDDMMYYYY:m_DateString.Format("D/D/D??",m_Day,m_Month,m_Year);返回(LPCSTR)m_DateSYYYYMMDD:m_DateString.Format("D/D/D??",m_Year,m_Month,m_Day);返回(LPCSTR)m_DateS默认值:返回(LPCSTR)NULL;}}请注意,我没有有限的测试,以自己的需要,所以这是非常值得!&#345;汤普森 skyfree评论会员:
时间:2000年数位&#8203;&#8203;规格需要一个4位数字的一年。在你上面有人用一个生日,例如121246在现有的数据库的版本现在会突然有一个的生日。应该"假设"(我恨这个词),今年有2位是在1900年-1999范围内的任何日期,也"假设",日期在这个范围内是4位数的领域。斯特林格理查德我不知道用什么武器第三次世界大战将转战,但第四次世界大战将争取用棍棒和石头。爱因斯坦理查德斯特林格评论会员:
时间:确定,2000年问题是一个长期的选择不当。问题是,如果今天我初始化字符串"03年3月12日"CSimpleDate假设我的意思是"日"。这不是我所期望的行为,所以我的目的,我不得不改变它。生日或年龄比1950年的日期,我不处理。像PowerBuilder的商业软件产品,它这样,它似乎是在市场上最广为接受的做法。对于一个完美的例子,请注意在此消息的顶部的"日期"字段。我不是说是至关重要的-这是一个伟大的编程社区服务,并为我节省了大量的时间。感谢-罗恩汤普森理查德斯金格:我喜欢|关键。 我只是justifing不实施日期的行为,我的理由 - 它诱使已知故障模式,并没有Y2K问题。我们经常使用的版本,其行为多,因为你在应用中,我们知道的日期范围是有限的,一个给定的范围内,虽然我们的大部分业务处理出生和死亡日期和日期,可以跨越3个世纪(18 -19 -20) 。
在意大利三十年下Borgias 他们战争,恐怖活动,谋杀和流血但他们生产的米开朗基罗,莱昂纳多达芬奇和文艺复兴时期。在瑞士,他们兄弟之情;,他们有五个一百多年民主与和平的什么产生?布谷鸟钟。 奥森威尔斯
评论会员:
时间:曲棍球 1。比较函数不考虑时间。
,我创建了一个函数来计算一个日历值,这是在所有比较。
time_t的CSimpleDate:ConvertToTimeValue(){
结构TM tmThis = {m_Second,m_Min,m_Hour,m_Day,m_Month - 1,m_Year - 1900}
返回mktime(tmThis); }
2。上午/下午的调整是不正确的。 下午12:00和下午1:00之间不处理看准时机。
(m_Hour> 12)
m_bPM = TRUE;
m_Hour -= 12;
否则,如果(m_Hour == 12)
m_bPM = TRUE;
m_bPM = FALSE;
3。 GetTimeString()和GetTimeStringShort()设置为FALSE的AMPM参数调用时,不正确的格式!倍。这里是一个修正:
#160;(AMPM == TRUE)
(m_bPM小时= 12)
然后格式化使用一小时,而不是m_Hour。 评论会员:
时间:AlpeshMakwana我发现错误,很久以前,张贴发送一个正确的版本,但我想它从来没有让它。矫正是一点点,比上面的解决方案更容易。如果比较(m_Hour> 12)应(m_Hour> = 12)
见下文。此修复程序为我们工作。
无效CSimpleDate:SetTime(){
time_val长;
((time_t的*)time_val);
tm_ptr =本地时间((time_t的*)time_val);
m_Hour = tm_ptr - > tm_ m_Min = tm_ptr - > tm_ m_Second = tm_ptr - > tm_ (m_Hour> = 12){m_bPM = TRUE; m_Hour - = 12; } ELSE m_bPM = FALSE;
斯特林格理查德
当我反映后,一些不愉快的人,我知道了更美好的世界,我很感动,导致不同的生活。马克吐温Pudd&#39;nhead威尔逊的日历
&桌面&网页开发&移动开发&数据库&多媒体&编程语言&平台,框架和库&编程通用&图形/设计&开发周期&一般阅读&第三方产品&作者资源&其他
快速解答标签
价值作最多vxworks下通过time函数获取系统时间一直不变,但是程序一直在运_CLUB问答网
您的当前位置: >
vxworks下通过time函数获取系统时间一直不变,但是程序一直在运
CLUB问答网竭尽全力为广大网友找到解决vxworks下通过time函数获取系统时间一直不变,但是程序一直在运的问题,又是找百度知道,又是搜狗问答,就连google也查了,终于找到了vxworks下通过time函数获取系统时间一直不变,但是程序一直在运的解决方法,你可以看看这个解决方法怎么样,答案不是唯一的解决方法,但是是CLUB问答网尽力找到的,希望对你有帮助,vxworks下通过time函数获取系统时间一直不变,但是程序一直在运虽然不难,但是答案就只有这个感觉不错,你可以试试。vxworks下通过time函数获取系统时间一直不变,但是程序一直在运相关问题如下:我想知道vxworks下通过time函数获取系统时间一直不变,但是程序一直在运。
网友回答:本人新手,碰到一个问题,其他程序都在正常运行,但是通过time函数来获取系统时间的时候,系统时间一直不变。
网友回答:上电的时候,系统时间有没有做设置,设置正确之后,系统时间才会跑起来。网友回答:楼主你的系统哪里搞到的?网友回答:我的要变得。是你的没有运行起来把。
+++++++++++++++++++++++++++++++++++++++++++++++++++++
返回CLUB问答网首页
郑重声明:本文仅代表作者个人观点,与本站无关。其原创性及文中陈述内容未经本站证实,对本文及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证和承诺,请自行核实相关内容。 本文链接地址:/a/diannaowangluo/72386.html
更多内容标签:
上一篇: 下一篇:没有了
vxworks下通过time函数获取系统时间一直不变,但是程序一直在运相关文章:
vxworks下通过time函数获取系统时间一直不变,但是程序一直在运相关推荐:【图片】【代码】怎样获取系统的时间用来写代码?【flash吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:123,190贴子:
【代码】怎样获取系统的时间用来写代码?收藏
如题,本人做了一个日期倒计时的flash,但是遇到一个问题:正常的倒计时肯定会随时间变化而减少嘛,但是我是在一个动态文本里写的,需要获取系统中的日期,用这个变量才能使它随时变化,否则就是固定不变的啦,但是现在不会获取系统日期啊,网上搜的都看不懂(本人flash编程无基础┳_┳),所以只能求助吧友了!!!可以的话越详细越好,直接告诉我改哪里,写什么最好啦。这是我现在一个动态文本里写的代码:第二行就是现在的日期了,但是只会用定值,不知道怎么让它保持变化,就想到获取系统日期...当然,有其他办法的话更好老师给了我一个swf文件,无奈拆不开,有个软件能转成fla的但也没有代码,只能看看了:因为已经过期了,日期是负数...
色谱柱选购,当然菲罗门。
对了,补充一句,DaoJiShiText是那个动态文本的变量
跪求啊!!!
NowDate:Date=new Date()
我祈祷拥有一颗透明的心灵
获取现在时间要放到间隔函数里,或者onEnterFrame函数里,循环获取动态值。你新建一个文档,把代码放到第一针var endTime = new Date(, 8, 0, 0);var timeLefTxt:TextField = _root.createTextField(&&, _root.getNextHighestDepth(), 100, 100, 200, 30);getLeftTime();var intervalID = setInterval(getLeftTime, 200);function getLeftTime() {var total = Math.round((endTime.getTime()-getTime().getTime())/1000);if (total&0) {}var lost = 60*60*24;var lefDay = Math.floor(total/lost);total -= lost*lefDlost = 60*60;var lefHour = Math.floor(total/lost);total -= lost*lefHlost = 60;var lefMinute = Math.floor(total/lost);total -= lost*lefMvar lefSec =timeLefTxt.text = &倒计时:&+lefDay+&天&+lefHour+&时&+lefMinute+&分&+lefSec+&秒&;}function getTime() {var _date = new Date();var _year = _date.getFullYear();var _mouth = _date.getMonth();var _dat = _date.getDate();var _hour = _date.getHours();var _minu = _date.getMinutes();var _sec = _date.getSeconds();return (new Date(_year, _mouth, _dat, _hour, _minu, _sec));}
就是这样啊,能不能具体一点,我没什么基础
不用传文件了。或者你要是用两针循环,直接把代码稍微修改一下,不用每次都创建textfield,就行了。var endTime = new Date(, 8, 0, 0);if (timeLefTxt == null) {timeLefTxt = _root.createTextField(&&, _root.getNextHighestDepth(), 100, 100, 200, 30);}getLeftTime();function getLeftTime() {var total = Math.round((endTime-getTime())/1000);if (total&0) {}var lost = 60*60*24;var lefDay = Math.floor(total/lost);total -= lost*lefDlost = 60*60;var lefHour = Math.floor(total/lost);total -= lost*lefHlost = 60;var lefMinute = Math.floor(total/lost);total -= lost*lefMvar lefSec =timeLefTxt.text = &倒计时:&+lefDay+&天&+lefHour+&时&+lefMinute+&分&+lefSec+&秒&;}function getTime() {var _date = new Date();var _year = _date.getFullYear();var _mouth = _date.getMonth();var _dat = _date.getDate();var _hour = _date.getHours();var _minu = _date.getMinutes();var _sec = _date.getSeconds();return (new Date(_year, _mouth, _dat, _hour, _minu, _sec));}
stop()var endTime = new Date(, 8, 0, 0);var timeLefTxt:TextField = _root.createTextField(&&, _root.getNextHighestDepth(), 100, 100, 200, 30);getLeftTime();var intervalID = setInterval(getLeftTime, 200);function getLeftTime() {var total = Math.round((endTime-getTime())/1000);if (total&0) {}var lost = 60*60*24;var lefDay = Math.floor(total/lost);total -= lost*lefDlost = 60*60;var lefHour = Math.floor(total/lost);total -= lost*lefHlost = 60;var lefMinute = Math.floor(total/lost);total -= lost*lefMvar lefSec =timeLefTxt.text = &倒计时:&+lefDay+&天&+lefHour+&时&+lefMinute+&分&+lefSec+&秒&;//设置字体timeLefTxt.setNewTextFormat(getNewFmt(&黑体&, 0x00ffcc, 16, true));}function getTime() {var _date = new Date();var _year = _date.getFullYear();var _mouth = _date.getMonth();var _dat = _date.getDate();var _hour = _date.getHours();var _minu = _date.getMinutes();var _sec = _date.getSeconds();return (new Date(_year, _mouth, _dat, _hour, _minu, _sec));}//设置字体function getNewFmt(font, color, size, bold) {var newFmt:TextFormat = new TextFormat();if (font != null) {newFmt.font =}if (size != null) {newFmt.size =}if (bold != null) {newFmt.bold =}newFmt.color =return newF}
登录百度帐号推荐应用}

我要回帖

更多关于 有些人好像别人都欠她似的 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信