smpputil.cpp
上传用户:hkcoast
上传日期:2007-01-12
资源大小:979k
文件大小:2k
源码类别:

手机短信编程

开发平台:

Visual C++

  1. #include "stdafx.h"
  2. #include "common.h"
  3. #include "smpputil.h"
  4. //CSmppDate
  5. CSmppDate::CSmppDate()
  6. {
  7. ::GetSystemTime(&m_time);
  8. m_null = true;
  9. }
  10. CSmppDate::~CSmppDate()
  11. {
  12. }
  13. void CSmppDate::setDate(CString sd)
  14. {
  15. //YYMMDDhhmmsstnn+
  16. if (sd.IsEmpty())
  17. {
  18. m_null = true;
  19. }
  20. else
  21. {
  22. int milsec;
  23. int tz;
  24. int yr;
  25. sscanf(sd, "%02d%02d%02d%02d%02d%02d%1d%2d+",
  26. &yr,
  27. &m_time.wMonth,
  28. &m_time.wDay,
  29. &m_time.wHour,
  30. &m_time.wMinute,
  31. &m_time.wSecond,
  32. &milsec,
  33. &tz);
  34. m_time.wYear = yr + 2000;
  35. m_time.wMilliseconds = milsec * 100;
  36. m_null = false;
  37. }
  38. }
  39. void CSmppDate::setDate(SYSTEMTIME sdt)
  40. {
  41. m_time = sdt;
  42. m_null = false;
  43. }
  44. CString CSmppDate::toString()
  45. {
  46. CString s;
  47. TCHAR buf1[10];
  48. TCHAR buf2[10];
  49. TCHAR buf3[10];
  50. if (m_null)
  51. return "";
  52. else
  53. {
  54. sprintf(buf1, "%04d%02d%02d", m_time.wYear, m_time.wMonth, m_time.wDay);
  55. sprintf(buf2, "%02d%02d%02d", m_time.wHour, m_time.wMinute, m_time.wSecond);
  56. sprintf(buf3, "%3d", m_time.wMilliseconds);
  57. s = (buf1+2);
  58. s += buf2;
  59. s += buf3[0];
  60. s += "00+";
  61. TRACE(s);
  62. }
  63. return s;
  64. }
  65. CSmppDate& CSmppDate::operator=(CSmppDate &dt)
  66. {
  67. m_time = dt.m_time;
  68. m_null = dt.m_null;
  69. return *this;
  70. }
  71. int CSmppDate::getLength()
  72. {
  73. if (m_null)
  74. return 0;
  75. else
  76. return 16;
  77. }
  78. void CSmppDate::setNull()
  79. {
  80. m_null = true;
  81. }
  82. bool CSmppDate::isNull()
  83. {
  84. return m_null;
  85. }
  86. //CSmppDate end
  87. //CSmppAddress
  88. CSmppAddress::CSmppAddress()
  89. {
  90. m_addr_ton = 0;
  91. m_addr_npi = 0;
  92. m_addr = "";
  93. }
  94. CSmppAddress::CSmppAddress(uint32 adrton, uint32 adrnpi, CString addr)
  95. {
  96. setAddrTon(adrton);
  97. setAddrNpi(adrnpi);
  98. setAddr(addr);
  99. }
  100. CSmppAddress::~CSmppAddress()
  101. {
  102. }
  103. CSmppAddress& CSmppAddress::operator=(CSmppAddress& addr)
  104. {
  105. m_addr_npi = addr.m_addr_npi;
  106. m_addr_ton = addr.m_addr_ton;
  107. m_addr = addr.m_addr;
  108. return *this;
  109. }
  110. int CSmppAddress::getLength()
  111. {
  112. return 3 + m_addr.GetLength();
  113. }
  114. void CSmppAddress::setAddrTon(uint32 adrton)
  115. {
  116. m_addr_ton = adrton;
  117. }
  118. void CSmppAddress::setAddrNpi(uint32 adrnpi)
  119. {
  120. m_addr_npi = adrnpi;
  121. }
  122. void CSmppAddress::setAddr(CString addr)
  123. {
  124. m_addr = addr;
  125. }