Index: /trunk/BNS/bnsoutf.h
===================================================================
--- /trunk/BNS/bnsoutf.h	(revision 859)
+++ /trunk/BNS/bnsoutf.h	(revision 860)
@@ -21,4 +21,5 @@
   virtual void closeFile();
   std::ofstream _out;
+  int           _sampl;
 
  private:
@@ -28,5 +29,4 @@
   void resolveFileName(int GPSweek, const QDateTime& datTim);
 
-  int           _sampl;
   bool          _headerWritten;
   QDateTime     _nextCloseEpoch;
Index: /trunk/BNS/bnssp3.cpp
===================================================================
--- /trunk/BNS/bnssp3.cpp	(revision 859)
+++ /trunk/BNS/bnssp3.cpp	(revision 860)
@@ -79,6 +79,25 @@
 ////////////////////////////////////////////////////////////////////////////
 void bnsSP3::writeHeader(const QDateTime& datTim) {
-  _out << "#cP2007  7  1  0  0  0.00000000      96 ORBIT IGS05 HLM  IGS"
-       << "## 1434      0.00000000   900.00000000 54282 0.0000000000000"
+
+  int    GPSWeek;
+  double GPSWeeks;
+  GPSweekFromDateAndTime(datTim, GPSWeek, GPSWeeks);
+
+  double sec = fmod(GPSWeeks, 60.0);
+
+  int    mjd;
+  double dayfrac;
+  mjdFromDateAndTime(datTim, mjd, dayfrac);
+
+  _out << "#aP" << datTim.toString("yyyy MM dd hh mm").toAscii().data() 
+       << setw(12) << setprecision(8) << sec
+       << "      96 ORBIT IGS05 HLM  IGS" << endl;
+
+  _out << "## " 
+       << setw(4)  << GPSWeek
+       << setw(16) << setprecision(8) << GPSWeeks
+       << setw(15) << setprecision(8) << double(_sampl)
+       << setw(6)  << mjd
+       << setw(16) << setprecision(13) << dayfrac << endl;
 
   _out << "+   32   G01G02G03G04G05G06G07G08G09G10G11G12G13G14G15G16G17\n"
Index: /trunk/BNS/bnsutils.cpp
===================================================================
--- /trunk/BNS/bnsutils.cpp	(revision 859)
+++ /trunk/BNS/bnsutils.cpp	(revision 860)
@@ -92,4 +92,18 @@
         currTime.second()                          +
         currTime.msec()                   / 1000.0;
+}
+
+// 
+////////////////////////////////////////////////////////////////////////////
+void mjdFromDateAndTime(const QDateTime& dateTime, int& mjd, double& dayfrac) {
+
+  double mjddec = dateTime.date().toJulianDay() - 2400000.5 + 
+                   (dateTime.time().hour() +
+                    (dateTime.time().minute() +
+                     (dateTime.time().second() + 
+                      dateTime.time().msec() / 1000.0) / 60.0) / 60.0) / 24.0;
+
+  mjd     = int(mjddec);
+  dayfrac = mjddec - mjd;
 }
 
Index: /trunk/BNS/bnsutils.h
===================================================================
--- /trunk/BNS/bnsutils.h	(revision 859)
+++ /trunk/BNS/bnsutils.h	(revision 860)
@@ -19,4 +19,6 @@
                             int& GPSWeek, double& GPSWeeks);
 
+void mjdFromDateAndTime(const QDateTime& dateTime, int& mjd, double& dayfrac);
+
 void currentGPSWeeks(int& week, double& sec);
 
