Index: trunk/BNC/src/bnctime.cpp
===================================================================
--- trunk/BNC/src/bnctime.cpp	(revision 5885)
+++ trunk/BNC/src/bnctime.cpp	(revision 5886)
@@ -8,5 +8,5 @@
 
 #include "bnctime.h"
-#include "timeutils.h"
+#include "bncutils.h"
 
 using namespace std;
Index: trunk/BNC/src/bncutils.cpp
===================================================================
--- trunk/BNC/src/bncutils.cpp	(revision 5885)
+++ trunk/BNC/src/bncutils.cpp	(revision 5886)
@@ -403,9 +403,8 @@
   return yf;
 }
-
-// 
-////////////////////////////////////////////////////////////////////////////
-double djul(int jj, int mm, double tt) {
-  int    ii, kk;
+// 
+////////////////////////////////////////////////////////////////////////////
+double djul(long jj, long mm, double tt) {
+  long    ii, kk;
   double  djul ;
   if( mm <= 2 ) {
@@ -422,12 +421,38 @@
 // 
 ////////////////////////////////////////////////////////////////////////////
-void jdgp(double tjul, double & second, int & nweek) {
+double gpjd(double second, int nweek) {
+  double deltat;
+  deltat = nweek*7.0 + second/86400.0 ;
+  return( 44244.0 + deltat) ;
+} 
+
+// 
+////////////////////////////////////////////////////////////////////////////
+void jdgp(double tjul, double & second, long & nweek) {
   double      deltat;
   deltat = tjul - 44244.0 ;
-  // current gps week
-  nweek = (int) floor(deltat/7.0);
-  // seconds past midnight of last weekend
+  nweek = (long) floor(deltat/7.0);
   second = (deltat - (nweek)*7.0)*86400.0;
 }
+
+// 
+////////////////////////////////////////////////////////////////////////////
+void jmt(double djul, long& jj, long& mm, double& dd) {
+  long   ih, ih1, ih2 ;
+  double t1, t2,  t3, t4;
+  t1  = 1.0 + djul - fmod( djul, 1.0 ) + 2400000.0;
+  t4  = fmod( djul, 1.0 );
+  ih  = long( (t1 - 1867216.25)/36524.25 );
+  t2  = t1 + 1 + ih - ih/4;
+  t3  = t2 - 1720995.0;
+  ih1 = long( (t3 - 122.1)/365.25 );
+  t1  = 365.25*ih1 - fmod( 365.25*ih1, 1.0 );
+  ih2 = long( (t3 - t1)/30.6001 );
+  dd  = t3 - t1 - (int)( 30.6001*ih2 ) + t4;
+  mm  = ih2 - 1;
+  if ( ih2 > 13 ) mm = ih2 - 13;
+  jj  = ih1;
+  if ( mm <= 2 ) jj = jj + 1;
+} 
 
 // 
Index: trunk/BNC/src/bncutils.h
===================================================================
--- trunk/BNC/src/bncutils.h	(revision 5885)
+++ trunk/BNC/src/bncutils.h	(revision 5886)
@@ -101,5 +101,9 @@
 double       djul(long j1, long m1, double tt);
 
+double       gpjd(double second, int nweek) ;
+
 void         jdgp(double tjul, double & second, long & nweek);
 
+void         jmt (double djul, long& jj, long& mm, double& dd);
+
 #endif
